Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.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,DAO_Java_Object_Arraylist - Fatal编程技术网

Java 将对象获取到Arraylist,DAO

Java 将对象获取到Arraylist,DAO,java,object,arraylist,Java,Object,Arraylist,我想将对象从Jlist(使用DefaultListModel)写入Arraylist,以便使用它保存/加载(流式)它们 GUI 私有DefaultListModel dlm=新的DefaultListModel(); 专用JList列表=新JList(dlm); btnNewButton_1.addActionListener(新ActionListener(){ 已执行的公共无效操作(操作事件arg0){ 会议m; m=新会议((日期)微调器.getValue(),textArea.getTe

我想将对象从Jlist(使用DefaultListModel)写入Arraylist,以便使用它保存/加载(流式)它们

GUI
私有DefaultListModel dlm=新的DefaultListModel();
专用JList列表=新JList(dlm);
btnNewButton_1.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件arg0){
会议m;
m=新会议((日期)微调器.getValue(),textArea.getText());
dlm.补充元素(m);
}
});
现在Jlist有了对象,数据类型正在开会。 如何将这些对象放入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);
    }
}
DAO
私有guig;
私有void writeFile(){
ArrayList mList=新的ArrayList();
for(对象会议:Arrays.asList(g.dlm.toArray()))
{
列表添加((会议)会议);
系统输出打印(会议);
}
}
我试图在GUI上将dlm设置为private和public

下一步是创建一个文件并将Arraylist写入其中
最后,我设想一个存储Arraylist的文件,我认为当前代码中会出现NullPointerException。您需要GUI实例才能访问dlm。将方法
setGUI(GUI g)
添加到DAO中,并在DAO中调用
writeFile()
之前使用此方法设置GUI实例。dlm应公开让其工作

public void setGUI(GUI g) {
    this.g = g;
}
我不会说这是最好的设计,但它应该能工作

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

//不需要这个
//私有guig;
私有无效写文件(ArrayList mList){
//要保存到文件的代码
}

您的问题是:“现在Jlist有对象”-没有您的
Jlist
有原始类型。只需将
list
声明为
JList
。要将其内容获取为
List
,只需使用
ArrayList mList=Collections.List(g.dlm.elements())-无需手动复制。
public void setGUI(GUI g) {
    this.g = g;
}
 // Don't need this 
 //private GUI g;

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

}