1
我想從用戶定義的函數中添加JList中的元素,該函數不是任何事件偵聽器。如何以編程方式在沒有EventListener的情況下在JList中添加元素?
我的JList爲:
DefaultListModel listModel = new DefaultListModel();
JList jList1 = new JList(listModel);
listModel.add(0,"Welcome");
listModel.addListDataListener(new MyListDataListener());
class MyListDataListener implements ListDataListener {
public void contentsChanged(ListDataEvent e) {
//DefaultListModel model = (DefaultListModel)e.getSource();
//jList1.setModel(listModel);
System.out.println("inside content");
}
public void intervalAdded(ListDataEvent e) {
// jList1.setModel(listModel);
jList1.setListData(a);
//System.out.println("inside added"+e.getSource()+" "+jList1.getModel());
}
public void intervalRemoved(ListDataEvent e) {
}
}
爲,intervalAdded被稱爲每當我想從一個的mouseClicked監聽器添加元素,如
private void sendButtonMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
if(!inputField.getText().isEmpty())
{
message=myName+" : "+inputField.getText();
listModel.add(GlobalVariable.i,message);
inputField.setText(null);
GlobalVariable.i++;
}
}
,也從我的用戶定義的函數,即是
public void messagereceived(String s)
{
listModel.add(GlobalVariable.i,message);
GlobalVariable.i++;
}
但是listModel.setmodel()
只要它打電話來自messagereceived()函數。
如何從這個函數添加JList中的元素?
首先確保'messagereceived'正在從'Event Dispatching Thread'內更新模型 – MadProgrammer