Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将数据从ArrayList加载到DefaultTableModel_Java_Arraylist_Jtable_Defaulttablemodel - Fatal编程技术网

Java 将数据从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

请注意,我正在尝试将存储在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");
//这是为了保存到数组中。
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();
}