我知道JList
不支持这里所说的ActionListeners
,但我需要实现一个列表,当新套接字连接到服务器时,该列表在框架中不断变化。所以我的问题:实施此列表的最佳方法是什么?
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
中的属性时调用。看看我的代码。