이벤트 리스너가 아닌 사용자 정의 함수에서 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) {
}
}
나는의 mouseClicked 리스너에서 요소를 추가 할 때마다, intervalAdded이 불리는 것을, 내 사용자 정의 함수에서도
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