Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.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 如何添加一个“;“听众”;给一个作家_Java_Swing_Sockets_Jlist - Fatal编程技术网

Java 如何添加一个“;“听众”;给一个作家

Java 如何添加一个“;“听众”;给一个作家,java,swing,sockets,jlist,Java,Swing,Sockets,Jlist,我知道如前所述,JList不支持ActionListeners,但我需要实现一个列表,当新套接字连接到服务器时,该列表在框架中不断变化。因此,我的问题是:实现此列表的最佳方法是什么?DefaultListModel data=newdefaultlistmodel()//默认列表模型 DefaultListModel<String> data = new DefaultListModel<>(); //defaultlistModel /** adding data

我知道如前所述,
JList
不支持
ActionListeners
,但我需要实现一个列表,当新套接字连接到服务器时,该列表在框架中不断变化。因此,我的问题是:实现此列表的最佳方法是什么?

DefaultListModel data=newdefaultlistmodel()//默认列表模型
DefaultListModel<String> data = new DefaultListModel<>();  //defaultlistModel

/**
adding data to jlist    **/
       data.addElement("new element");
       jList1.setModel(data);



/**action listner on data(defaultlistModel) will be called when the list is changed*/

    public void addlistner(){


    data.addListDataListener(new ListDataListener() {
        @Override
        public void intervalAdded(ListDataEvent e) {
            throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }

        @Override
        public void intervalRemoved(ListDataEvent e) {
            throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }

        @Override
        public void contentsChanged(ListDataEvent e) {
            System.out.println("added"+e.getIndex1());   
        }
    });

    } 
/** 向jlist添加数据**/ 数据。附录(“新元素”); jList1.setModel(数据); /**更改列表时,将调用数据上的操作listner(defaultlistModel)*/ public void addlistner(){ addListDataListener(新ListDataListener(){ @凌驾 添加了公共无效间隔(ListDataEvent e){ 抛出新的UnsupportedOperationException(“尚未受支持”);//若要更改生成的方法体,请选择“工具”“模板”。 } @凌驾 删除公共无效间隔(ListDataEvent e){ 抛出新的UnsupportedOperationException(“尚未受支持”);//若要更改生成的方法体,请选择“工具”“模板”。 } @凌驾 公共无效内容更改(ListDataEvent e){ System.out.println(“添加”+e.getIndex1()); } }); }
您不能使用
jlist
执行此操作。但是它可以通过
defaultListModel
每当您需要向jlist添加数据时。您应该将元素添加到
defaultlistmodel
中,然后将模型设置到
jlist
中。 然后,您可以编写一个listner,在
defaultListModel
中更改属性时调用它。看看我的代码。

DefaultListModel data=newdefaultlistmodel()//默认列表模型
/**
向jlist添加数据**/
数据。附录(“新元素”);
jList1.setModel(数据);
/**更改列表时,将调用数据上的操作listner(defaultlistModel)*/
public void addlistner(){
addListDataListener(新ListDataListener(){
@凌驾
添加了公共无效间隔(ListDataEvent e){
抛出新的UnsupportedOperationException(“尚未受支持”);//若要更改生成的方法体,请选择“工具”“模板”。
}
@凌驾
删除公共无效间隔(ListDataEvent e){
抛出新的UnsupportedOperationException(“尚未受支持”);//若要更改生成的方法体,请选择“工具”“模板”。
}
@凌驾
公共无效内容更改(ListDataEvent e){
System.out.println(“添加”+e.getIndex1());
}
});
} 
您不能使用
jlist
执行此操作。但是它可以通过
defaultListModel
每当您需要向jlist添加数据时。您应该将元素添加到
defaultlistmodel
中,然后将模型设置到
jlist
中。
然后,您可以编写一个listner,在
defaultListModel
中更改属性时调用它。请查看我的代码。

这样,当连接新的套接字时,您的列表应该会得到更新。它与actionListnerwell有什么关系?我想,要在发生某件事时更新列表,它需要一个侦听器等待这件事,对吗?因此,当连接新套接字时,列表应该得到更新。它与ActionList有什么关系呢?我想,如果要在某些事情发生时更新列表,它需要一个侦听器等待这件事情,对吗?其他信息:当使用
JList.setModel()
时,要小心使用
JList.setListData()
-这构造了一个新模型,而带有侦听器的旧模型将消失!其他信息:当使用
JList.setModel()
时,请小心使用
JList.setListData()
-这将构造一个新模型,并且旧模型及其列表器将消失!