我已经创建了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