【发布时间】:2014-01-29 13:57:12
【问题描述】:
我创建了 2 个 JList 'addGroupList' 和 'addApkList'。我正在使用 model.addElement(arrayList1.get(arrayList1.size()-1)) 向 addGroupList 添加元素;问题是,我想根据 addGroupList 的选定值更新 addApkList。为此,我正在尝试添加事件侦听器,以便在选择列表项但事件未触发时可以采取行动。 我该怎么做才能做到这一点? 以下是我正在使用的代码。
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 吗? docs.oracle.com/javase/7/docs/api/javax/swing/event/…
-
请问为什么,原因......
-
我试过 ListDataListener。它不工作。更新我在尝试有问题的 ListDataListener 时使用的代码。
标签: java swing event-handling jlist listselectionlistener