这个监听器95%的时间都在工作:
messagesJList.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
messagesJListValueChanged(evt);
}
});
然而,它有时会在不方便的时候注册。毫无疑问,我的错误处理是潜在的问题。话虽如此,是否有一个替代监听器聚合各种鼠标和键盘监听器,但只有那些事件?
答案 0 :(得分:3)
这个监听器95%的时间都在工作:
在所有情况下都适合我,确定需要测试selectedItem, Index or Row
是否大于-1 (no selection)
jList.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
if (!e.getValueIsAdjusting()) {
int selectedRow = jList.getSelectedIndex();
if (selectedRow> -1) {
System.out.println("selection");
}
}
}
});
答案 1 :(得分:0)
我刚刚合并:
private void messagesJListKeyReleased(java.awt.event.KeyEvent evt) {
userSelectedRow();
}
private void messagesJListMouseReleased(java.awt.event.MouseEvent evt) {
userSelectedRow();
}
这样,只有当用户实际点击鼠标或键盘时,才会调用userSelectedRow()方法。