Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

KeyEventについて

KeyEventを受け取りたいのですが、JButtonをpanelにadd
するとKeyEventが受け取れなくなります。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?
topic=21034&forum=12
上記URLを参考にするとJButtonでKeyEventが処理されてい
るみたいなのですが、KeyEventがJButtonで処理されない
ようにするにはどうすればいいのでしょうか。

2

回答

3575

閲覧

2件の回答

評価

0

すいません。下記で自己解決しました。
addComponentListener(new ComponentAdapter() {
              @Override
              public void 
componentShown(ComponentEvent e) {
                requestFocusInWindow();
        }});
これによりフォーカスをJFrameに当てることができました

評価

0

追記ですが、
addComponentListener〜だとwindowを開いたと時はJFrame
にフォーカスが当たりますが、JButtonをクリックすると
またKeyEventが受け取れなくなります。その時はJButton
のactionPerformedでボタン処理の後
requestFocusInWindow()でJFrameにフォーカスを当てるよ
うにすればKeyEventが受け取れます。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。