1

このリスナーは 95% の確率で動作します。

    messagesJList.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
        public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
            messagesJListValueChanged(evt);
        }
    });

ただし、都合の悪いときに登録されることがあります。間違いなく、私のエラー処理が根本的な問題です。そうは言っても、さまざまなマウスとキーボードのリスナーを集約する代わりのリスナーはありますが、それらのイベントのみですか?

4

2 に答える 2

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");
                }                    
            }
        }
    });
于 2012-07-25T21:10:48.553 に答える
0

私はちょうど結合しました:

private void messagesJListKeyReleased(java.awt.event.KeyEvent evt) {
    userSelectedRow();
}

private void messagesJListMouseReleased(java.awt.event.MouseEvent evt) {
    userSelectedRow();
}

ユーザーが実際にマウスまたはキーボードでクリックした場合にのみ、メソッド userSelectedRow() が呼び出されるようにします。

于 2012-07-25T21:15:47.873 に答える