0

KeyListenerクラスへのクラスの追加org.eclipse.swt.widgets.Text。を入力する'a'と、複数のkeyEventsを取得します。私は1つのkeyEventだけを期待しています。何故ですか。

text.addKeyListener(new KeyAdapter() {
    @Override
    public void keyReleased(KeyEvent keyEvent) {
        super.keyReleased(keyEvent);
        logger.log(Level.INFO, "keyEvent-->" + "\n" +  
                            "character :" + keyEvent.character + "\n" + 
                            "code      :" + keyEvent.keyCode + "\n" +
                            "location  :" + keyEvent.keyLocation + "\n" +
                            "stateMask :" + keyEvent.stateMask + "\n" +
                            "time      :" + keyEvent.time + "\n" +
                            "hashCode  :" + keyEvent.hashCode() + "\n" +
                            "data      :" + keyEvent.data + "\n" +
                            "doit      :" + keyEvent.doit + "\n");
    }
});

出力(キーボードの「a」を1回押した後):

keyReleased
INFO: keyEvent-->
character :a
code      :97
location  :0
stateMask :0
time      :15626510
hashCode  :692735
data      :null
doit      :true

keyReleased
INFO: keyEvent-->
character :a
code      :97
location  :0
stateMask :0
time      :15626510
hashCode  :32967617
data      :null
doit      :true

keyReleased
INFO: keyEvent-->
character :a
code      :97
location  :0
stateMask :0
time      :15626510
hashCode  :2412752
data      :null
doit      :true

keyReleased
INFO: keyEvent-->
character :a
code      :97
location  :0
stateMask :0
time      :15626510
hashCode  :17374804
data      :null
doit      :true

keyReleased
INFO: keyEvent-->
character :a
code      :97
location  :0
stateMask :0
time      :15626510
hashCode  :27668426
data      :null
doit      :true

keyReleased
INFO: keyEvent-->
character :a
code      :97
location  :0
stateMask :0
time      :15626510
hashCode  :25933099
data      :null
doit      :true
4

1 に答える 1

1

そのコンポーネントの存続期間中に複数のKeyAdapterを追加した可能性があります。何getKeyListeners().lengthが返されるかを確認して、確認してください。

于 2013-01-30T13:30:03.550 に答える