【问题标题】:ArrayList items to JTable using DefaulTableModel使用 DefaultTableModel 将 ArrayList 项添加到 JTable
【发布时间】:2021-03-01 15:59:07
【问题描述】:

我试图获取我的 ArrayList 中的内容,持有 FootballClub 对象并将它们显示到我的 JTable 上。我似乎无法让它工作,我不确定我做错了什么。任何帮助将不胜感激。它表示 model.add() 此处不允许使用数组初始值设定项。我的 columnNames 似乎也没有显示

// 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);

}

【问题讨论】:

    标签: java swing arraylist jtable defaulttablemodel


    【解决方案1】:

    你没有说你写的东西怎么行不通。我假设这一行存在编译器问题:

        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) {
    

    这应该会让事情更清楚。)

    【讨论】:

    • 感谢您指出这一点。我已经更新了这个问题。我已经使用了您所说的内容,它现在显示了正确的信息,但由于某种原因我仍然无法显示我的列名。我已将它们传递给 DefaultTableModel 构造函数
    • @Shabaaz:JTable 需要进入 JScrollPane 才能显示列标题。
    猜你喜欢
    • 2017-09-19
    • 2011-05-18
    • 2016-03-21
    • 2016-09-21
    • 2013-02-17
    • 2015-05-15
    • 1970-01-01
    • 1970-01-01
    • 2015-08-13
    相关资源
    最近更新 更多