Java 使用DefaulTableModel将项目列表到JTable

Java 使用DefaulTableModel将项目列表到JTable,java,swing,arraylist,jtable,defaulttablemodel,Java,Swing,Arraylist,Jtable,Defaulttablemodel,我正试图将这些内容放在我的ArrayList中,拿着足球俱乐部的物品,并将它们显示在我的JTable上。我似乎无法让它工作,我不确定我做错了什么。任何帮助都将不胜感激。对于model.add(),这里不允许使用数组初始值设定项。我的专栏名似乎也没有显示出来 // the arraylist containing footballclub objects protected ArrayList<FootballClub> clubs = new ArrayList<Footbal

我正试图将这些内容放在我的ArrayList中,拿着足球俱乐部的物品,并将它们显示在我的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);

}
//包含足球俱乐部对象的arraylist
受保护的ArrayList clubs=新ArrayList();
公共空白显示表(ArrayList足球俱乐部)
{
String[]columnNames={“俱乐部名称”、“目标”、“积分”、“胜利”};
DefaultTableModel=新的DefaultTableModel(columnNames,0);
对于(int i=0;i
你不会说你写的东西怎么不起作用。我假设这一行存在编译器问题:

    model.addRow({{name, goals,points,wins}});
看起来您正在尝试使用
对象[]
重载。正确的语法是:

    model.addRow(new Object[] { name, goals, points, wins });
或者,数组初始值设定项的特殊语法:

    Object[] row = { name, goals, points, wins} ;
    model.addRow(row);
如果有一个
列表
过载,你可以使用
List.of(姓名、目标、积分、胜利)
,但是没有

(还要注意,通常使用
List
而不是
ArrayList
。如果与
java.awt.List
冲突,可以显式添加
import java.util.List

可以编写的

for (FootballClub club : footballClubs) {

这会让事情更清楚。)

谢谢你指出这一点。我已经更新了问题。我已经使用了您所说的,它现在正在显示正确的信息,但由于某些原因,我仍然无法显示我的列名。我已将它们传递到DefaultTableModel中constructor@Shabaaz:JTable需要进入JScrollPane才能显示列标题。非常感谢!