我已經創建了2個JLists'addGroupList'和'addApkList'。我使用model.addElement(arrayList1.get(arrayList1.size() - 1))將元素添加到addGroupList中;事情是,我想基於addGroupList的選定值更新addApkList。爲此,我嘗試添加事件偵聽器,以便在選擇列表項目時處理某些事件,但事件不會觸發事件。 我該怎麼做才能做到這一點? 以下是我正在使用的代碼。如何將偵聽器事件添加到由DefaultListModel對象添加的JList元素?
model1 = new DefaultListModel();
model2 = new DefaultListModel();
addApkList = new JList(model1);
addGroupList = new JList(model2);
scrollPane1 = new JScrollPane();
scrollPane1.setViewportView(addApkList);
scrollPane2 = new JScrollPane();
scrollPane2.setViewportView(addGroupList);
這樣我定義了JList。 在下面的方法,我已經添加元素addGroupList
model1.addElement(arrayList1.get(arrayList1.size()-1));
並在下面我添加監聽器,它的方式。
addGroupList.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent lse) {
if (!lse.getValueIsAdjusting()) {
System.out.println("Selection trigerred");
}
}
});
這段代碼似乎沒有發生任何變化。我做錯了什麼? 我也試過以下
model1.addListDataListener(new ListDataListener() {
@Override
public void intervalAdded(ListDataEvent lde) {
System.out.println("ddddddddddd");
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void intervalRemoved(ListDataEvent lde) {
System.out.println("ddddddddddd");
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void contentsChanged(ListDataEvent lde) {
System.out.println("ddddddddddd");
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
});
你確定你不需要爲你的ListModel實現ListDataListener嗎? http://docs.oracle.com/javase/7/docs/api/javax/swing/event/ListDataListener.html –
請原因爲... – mKorbel
我試過ListDataListener。它不工作。更新我在嘗試使用ListDataListener時使用的代碼。 – Nikhil