arraylist项转换为jtable

xa9qqrwz  于 2021-07-11  发布在  Java
关注(0)|答案(1)|浏览(302)

我试着把内容放在我的数组列表中,拿着足球俱乐部的对象并把它们显示在我的jtable上。我似乎无法让这个工作,我不知道我做错了什么。任何帮助都将不胜感激。对于model.add(),这里不允许使用数组初始值设定项。我的列名似乎也没有显示出来

// the arraylist containing footballclub objects
protected ArrayList<FootballClub> clubs = new ArrayList<FootballClub>();

 public void displayTable(ArrayList<FootballClub> footballClubs)
{
    String[] columnNames = {"Club name", "goals", "points", "wins"};
    DefaultTableModel model = new DefaultTableModel(columnNames, 0);

    for(int i = 0; i < footballClubs.size(); i++)
    {
        String name = footballClubs.get(i).getClubName();
        int goals = footballClubs.get(i).getGoals();
        int points = footballClubs.get(i).getPoints();
        int wins = footballClubs.get(i).getPoints();
        model.addRow({{name, goals,points,wins}});
    }

    final JTable teamTable = new JTable(model);
    teamTable.setFillsViewportHeight(true);

    JFrame frame = new JFrame("Tableview");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.pack();
    frame.setSize(500, 500);
    frame.setVisible(true);

}
toiithl6

toiithl61#

你不会说你写的东西怎么不起作用。我假设这行有编译器问题:

model.addRow({{name, goals,points,wins}});

看起来你好像在用 Object[] 超载。正确的语法是:

model.addRow(new Object[] { name, goals, points, wins });

或者,数组初始值设定项的特殊语法:

Object[] row = { name, goals, points, wins} ;
    model.addRow(row);

如果有一个 List 超载,你可以用 List.of(name, goals, points, wins) ,但是没有。
(另请注意,使用 List 而不是 ArrayList . 如果与 java.awt.List 您可以显式地添加 import java.util.List .
这个 for 可写为:

for (FootballClub club : footballClubs) {

这会让事情更清楚。)

相关问题