Swing中的鼠标和键盘监听器

时间:2012-07-25 20:46:45

标签: java swing events netbeans actionlistener

这个监听器95%的时间都在工作:

    messagesJList.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
        public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
            messagesJListValueChanged(evt);
        }
    });
然而,它有时会在不方便的时候注册。毫无疑问,我的错误处理是潜在的问题。话虽如此,是否有一个替代监听器聚合各种鼠标和键盘监听器,但只有那些事件?

2 个答案:

答案 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()方法。