获取对象到Arraylist,DAO

时间:2016-08-22 21:03:48

标签: java object arraylist

我想将Jlist中的对象(带有DefaultListModel)写入Arraylist,以便我可以使用它来保存/加载(流)它们。

GUI
private DefaultListModel<Meeting> dlm = new DefaultListModel<Meeting>();
private JList list = new JList<>(dlm);  

    btnNewButton_1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            Meeting m;
            m = new Meeting((Date)spinner.getValue(), textArea.getText());
            dlm.addElement(m);
        }
    });

现在Jlist有对象,数据类型是Meeting。 我怎样才能将这些对象带入Arraylist,它应该是DAO?

DAO

private GUI g;

private void writeFile() {

    ArrayList<Meeting> mList = new ArrayList<>();
    for (Object meeting : Arrays.asList(g.dlm.toArray())) 
    {
        mList.add((Meeting)meeting);

        System.out.println(meeting);
    }
}

我试图在GUI上将dlm设置为私有也公开

下一步是创建一个文件并在其中编写Arraylist 最后,我想象一个存储Arraylist的文件

1 个答案:

答案 0 :(得分:0)

我认为您将使用当前代码获取NullPointerException。您需要GUI实例才能访问dlm。向DAO添加方法setGUI(GUI g),并在调用DAO中的writeFile()之前使用此方法设置GUI实例。 dlm应公开让他工作。

public void setGUI(GUI g) {
    this.g = g;
}

我不会说这是最好的设计,但它应该有效。

要获得更好的设计,请将模型值转换为GUI本身的ArrayList,并使用ArrayList作为参数调用writeFile()方法。

DAO

 // Don't need this 
 //private GUI g;

private void writeFile(ArrayList<Meeting> mList) {
    // Code to save to a file 

}