2016-10-03 7 views
1

私のアプリには複数のJButtonがあります。マウスでボタンをクリックすると、正しいメッセージが表示されます。しかし、キーを押したときにボタンの1つを選択しようとすると、最初の値、つまりボタンの値は変化しません。あなたは、単一のキーリスナーオブジェクトを作成することができますJava JButton ActionListener

ActionListener listener = new ActionListener() { 
       @Override 
       public void actionPerformed(ActionEvent e) { 
        if (e.getSource() instanceof JButton) { 

         String text = ((JButton) e.getSource()).getText(); 
         JOptionPane.showMessageDialog(null, text); 
        } 
       } 
      }; 

      for (int i = 1; i < button.length; i++) { 

       button[i] = new JButton(String.valueOf(i)); 
       button[i].addActionListener(listener); 

       panel11.add(button[i]); 
       _targetItems.addFirst(button[i]); // target items is a linked list 

       } 
+0

キー 'C' 押されたイベントをキャッチしようとしましたか?それはあなたのボタンで唯一のリスナーですか? – Kapcash

+0

はい私はプログラムのリスナーとしてキー 'C'しか持っていません – user3668862

+0

@ user3668862私は答えを投稿しましたが、あなたが探しているものと正確に一致しないことがあります。キープレスを聞くために使用しているコードを追加できますか? – Brion

答えて

0

:私はコードですkeyboard.Below上の「C」のキーを押す時に複数のボタンを選択することができるようにしたいです。その後、すべてのボタンに添付します。

KeyListener keyListener = new KeyListner { 
    //Override the specific action you want here 
    ... 
} 

button[0].addKeyListener(keyListener); //reuse the same listener for your buttons 
... 

https://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html

関連する問題