import java.awt.BorderLayout; import java.util.ArrayList; import java.util.Comparator; import javax.swing.JLabel; public class Rankboard extends GameView { ArrayList cars; private final JLabel label; public Rankboard(String title, ArrayList cars, int width, int height, int x, int y) { super(title, width, height, x, y); this.cars = cars; this.label = new JLabel(); this.add(label, BorderLayout.CENTER); } private void updateRankText() { cars.sort(Comparator.comparingInt(Car::getScore).reversed()); StringBuilder s = new StringBuilder(); s.append(""); for (Car c : cars) { s.append(""); } s.append("
" + c + ": " + c.getScore() + "%
"); label.setText(s.toString()); } @Override protected void run() { updateRankText(); } }