Java 使用DefaulTableModel将项目列表到JTable
我正试图将这些内容放在我的ArrayList中,拿着足球俱乐部的物品,并将它们显示在我的JTable上。我似乎无法让它工作,我不确定我做错了什么。任何帮助都将不胜感激。对于model.add(),这里不允许使用数组初始值设定项。我的专栏名似乎也没有显示出来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
// 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才能显示列标题。非常感谢!