Java 将数据从ArrayList加载到DefaultTableModel
请注意,我正在尝试将存储在ArrayList中的数据加载到DefaultTableModel,但没有看到数据出现。请在下面查看我的代码Java 将数据从ArrayList加载到DefaultTableModel,java,arraylist,jtable,defaulttablemodel,Java,Arraylist,Jtable,Defaulttablemodel,请注意,我正在尝试将存储在ArrayList中的数据加载到DefaultTableModel,但没有看到数据出现。请在下面查看我的代码 // this is to save to the array. ArrayList<MusicEdit> musiclist = new ArrayList<MusicEdit>(); code = Integer.parseInt(txtAddMusicCode.getText()); title = txt
// 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");
//这是为了保存到数组中。
ArrayList musiclist=新的ArrayList();
code=Integer.parseInt(txtAddMusicCode.getText());
title=txtAddMusicTitle.getText();
artist=txtAddMusicArtist.getText();
price=Integer.parseInt(txtAddMusicprice.getText());
MusicEdit s=新的MusicEdit(代码、标题、艺术家、价格);
音乐列表。添加(s);
showMessageDialog(null,“添加成功”);
要加载表格模型,这就是我得到的
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();
}
public类displayMusicd扩展了javax.swing.JFrame{
//下面是加载TableModel的步骤
String[]columnName={“代码”、“标题”、“艺术家”、“价格”};
DefaultTableModel dtm=新的DefaultTableModel(columnName,0);
ArrayList musiclist=新的ArrayList();
公共void loadAll(){
用于(对象s:musiclist){
dtm.addRow((对象[])s);
}
tblMusic.setModel(dtm);
}
公共显示musiccd(){
初始化组件();
loadAll();
}
请告诉我我在这里遗漏了什么,表加载了,但只有列名显示,但数据没有显示。我尝试使用AbstractTableModel,但我没有找到解决方法。因此,目前这不是一个选项。
提前感谢。//这是为了保存到数组中。
// 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");
ArrayList musiclist=新的ArrayList();
code=Integer.parseInt(txtAddMusicCode.getText());
title=txtAddMusicTitle.getText();
artist=txtAddMusicArtist.getText();
price=Integer.parseInt(txtAddMusicprice.getText());
MusicEdit s=新的MusicEdit(代码、标题、艺术家、价格);
音乐列表。添加(s);
showMessageDialog(null,“添加成功”);
这段代码很好,在代码第5行的第二次和平中
ArrayList<MusicEdit> musiclist= new ArrayList<MusicEdit>();
ArrayList musiclist=new ArrayList();
在这里,您正在创建新的对象
musiclist
,该对象为空。为了从列表中加载数据,您需要获取该列表。如果您共享您的类,则我可以相应地重构您的代码。我可以从下面的UI代码中看到
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>();
...
尝试获取对已添加元素的musiclist的引用并对其进行迭代。公共类MusicEdit{
public class MusicEdit {
public ArrayList<MusicEdit> getMusiclist() {
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);
return musiclist;
}
}
public class DisplayMusicCD extends javax.swing.JFrame {
// Here is to load the TableModel
String[] columnName = {"Code", "Title", "Artist", "Price"};
MusicEdit musicEdit = new MusicEdit ();
DefaultTableModel dtm = new DefaultTableModel(columnName, 0);
ArrayList<MusicEdit> musiclist = musicEdit.getMusiclist();
public void loadAll(){
for (Object s : musiclist) {
dtm.addRow( (Object[]) s);
}
tblMusic.setModel(dtm);
}
public DisplayMusicCD() {
initComponents();
loadAll();
}
公共阵列列表getMusiclist(){
ArrayList musiclist=新的ArrayList();
code=Integer.parseInt(txtAddMusicCode.getText());
title=txtAddMusicTitle.getText();
artist=txtAddMusicArtist.getText();
price=Integer.parseInt(txtAddMusicprice.getText());
MusicEdit s=新的MusicEdit(代码、标题、艺术家、价格);
音乐列表。添加(s);
回归音乐家;
}
}
公共类displaymusicd扩展了javax.swing.JFrame{
//下面是加载TableModel的步骤
String[]columnName={“代码”、“标题”、“艺术家”、“价格”};
MusicEdit MusicEdit=新的MusicEdit();
DefaultTableModel dtm=新的DefaultTableModel(columnName,0);
ArrayList musiclist=musicEdit.getMusiclist();
公共void loadAll(){
用于(对象s:musiclist){
dtm.addRow((对象[])s);
}
tblMusic.setModel(dtm);
}
公共显示musiccd(){
初始化组件();
loadAll();
}
我在这里编写代码,给你一些想法和方法。试试看,我应该为你工作。这真的需要一个。我真的很想在第一个代码片段之前看看你在
ArrayList
中输入了什么数据。我如何获得对我已经拥有的musiclist的引用。考虑到这一点,MusicEdit是一个正在运行的类n和DisplayMusicCD。很抱歉,如果这个问题很难回答,我只是一个新手,并且亲自处理项目。您需要在MusicEdit类中添加一个getter()方法来获取其他类中的列表。然后您需要在DisplayMusicCD类中实例化MusicEdit类并使用getter()对象的方法以获取对列表的引用。请说明如何共享该类。有两个不同的类。我尝试了您建议的方法,但现在在此行“dtm.addRow((object[])s;”处出现错误。它表示MusicEdit无法转换到[Ljava.lang.Object.这个错误是什么意思。我相信你的项目很简单,你能分享java类吗?我会让它可以运行,并在这里为你发布。
public class MusicEdit {
public ArrayList<MusicEdit> getMusiclist() {
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);
return musiclist;
}
}
public class DisplayMusicCD extends javax.swing.JFrame {
// Here is to load the TableModel
String[] columnName = {"Code", "Title", "Artist", "Price"};
MusicEdit musicEdit = new MusicEdit ();
DefaultTableModel dtm = new DefaultTableModel(columnName, 0);
ArrayList<MusicEdit> musiclist = musicEdit.getMusiclist();
public void loadAll(){
for (Object s : musiclist) {
dtm.addRow( (Object[]) s);
}
tblMusic.setModel(dtm);
}
public DisplayMusicCD() {
initComponents();
loadAll();
}