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()
-这将构造一个新模型,并且旧模型及其列表器将消失!