public void populateJTable() {
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
Object[] rowData = new Object[4];
TrackService ts = new TrackService();
ArrayList<Track> tracks = ts.jsonToTracks();
for (int i = 0; i < tracks.size(); i++) {
rowData[0] = tracks.get(i).getTrackName();
rowData[1] = tracks.get(i).getArtist();
model.addRow(rowData);
}
jTable1 = new JTable(model);
}
在我的json文件中,我存储了一个存储5个值的mp3文件的元数据。我的jsonToTracks&#39; method将它们存储在ArrayList中。 我试图从我的ArrayList中获取2个值(trackName和artist)并在我的JTable中显示它们。 我的JTable有4列 - 名字,艺术家,钥匙,心情。我试图将trackName和Artist存储在相应的列中。 Key和Mood列应为空白,并且应填充Name和Artist字段。 我无法看到自己做错了什么,有人可以帮忙吗?
答案 0 :(得分:3)
也许你应该尝试,将你的rowData初始化转移到for循环中。
public void populateJTable() {
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
TrackService ts = new TrackService();
ArrayList<Track> tracks = ts.jsonToTracks();
for (int i = 0; i < tracks.size(); i++) {
Object[] rowData = new Object[4];
rowData[0] = tracks.get(i).getTrackName();
rowData[1] = tracks.get(i).getArtist();
model.addRow(rowData);
}
jTable1 = new JTable(model);
}
答案 1 :(得分:2)
jTable1 = new JTable(model);
我怀疑问题是你正在创建一个新的JTable
,但你从不将表格添加到框架中。
相反,你应该使用:
jTable1.setModel( model );
这将替换现有JTable
中的数据,我假设您已添加到已添加到框架中的JScrollpane
。