我知道JList会像here那样支持actionlisteners,但我需要实现一个列表,当新套接字连接到服务器时,该列表会在框架中不断变化。所以我的问题是:实施此列表的最佳方法是什么?
答案 0 :(得分:1)
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
做到这一点。但defaultListModel
可能
每当您需要将数据添加到jlist时。您应该将您的元素添加到defaultlistmodel
,然后将模型设置为jlist
。
然后您可以编写一个列表器来调用defaultListModel
中的更改属性。看看我的代码。