请问我正在尝试将存储在ArrayList中的数据加载到DefaultTableModel,但我没有看到数据出现。请查看下面的代码。
// this is to save to the array.
ArrayList<MusicEdit> musiclist = new ArrayList<MusicEdit>();
code = Integer.parseInt(txtAddMusicCode.getText());
title = txtAddMusicTitle.getText();
artist = txtAddMusicArtist.getText();
price = Integer.parseInt(txtAddMusicprice.getText());
MusicEdit s = new MusicEdit(code, title, artist, price);
musiclist.add(s);
JOptionPane.showMessageDialog(null, "Added Successfully");
加载表格模型,这就是我所拥有的。
public class DisplayMusicCD extends javax.swing.JFrame {
// Here is to load the TableModel
String[] columnName = {"Code", "Title", "Artist", "Price"};
DefaultTableModel dtm = new DefaultTableModel(columnName, 0);
ArrayList<MusicEdit> musiclist= new ArrayList<MusicEdit>();
public void loadAll(){
for (Object s : musiclist) {
dtm.addRow( (Object[]) s);
}
tblMusic.setModel(dtm);
}
public DisplayMusicCD() {
initComponents();
loadAll();
}
请问我在这里丢失了什么,表格会加载,但只显示列名,但数据不会显示。我尝试使用AbstractTableModel,但我没有办法解决它。所以现在不是一个选择。 提前谢谢。
答案 0 :(得分:2)
Results
我在这里编码,给你并想出如何做到这一点。试一试,我应该为你工作。
答案 1 :(得分:1)
我可以从以下代码中看到您的用户界面
public class DisplayMusicCD extends javax.swing.JFrame {
// Here is to load the TableModel
String[] columnName = {"Code", "Title", "Artist", "Price"};
DefaultTableModel dtm = new DefaultTableModel(columnName, 0);
ArrayList<MusicEdit> musiclist= new ArrayList<MusicEdit>();
...
您正在创建一个新的MusicEdit数组列表,并在列表上进行迭代,因为它刚刚创建时没有添加任何对象。
您需要遍历在第一部分代码中创建的MusicEdit列表。实际上已将对象添加到列表中的位置。
MusicEdit s = new MusicEdit(code, title, artist, price);
musiclist.add(s);
JOptionPane.showMessageDialog(null, "Added Successfully");
尝试引用已添加元素的音乐列表并对其进行迭代。
答案 2 :(得分:0)
// this is to save to the array.
ArrayList<MusicEdit> musiclist = new ArrayList<MusicEdit>();
code = Integer.parseInt(txtAddMusicCode.getText());
title = txtAddMusicTitle.getText();
artist = txtAddMusicArtist.getText();
price = Integer.parseInt(txtAddMusicprice.getText());
MusicEdit s = new MusicEdit(code, title, artist, price);
musiclist.add(s);
JOptionPane.showMessageDialog(null, "Added Successfully");
这段代码很好,代码第5行的第二个和平,
ArrayList<MusicEdit> musiclist= new ArrayList<MusicEdit>();
在这里,您要创建新对象musiclist
,该对象为null。要从列表中加载数据,您需要获取该列表。如果您分享您的课程,那么我可以相应地重构您的代码。