2

私はJavaアプリケーションに取り組んでいます。矢印キーに KeyListener を実装したいと思います。JFrame を拡張して ActionListener を実装するクラスがあります。

public class MyClass extends JFrame implements ActionListener{
}

このフレームの矢印キーにキーボード リスナーを追加するにはどうすればよいですか?

コンストラクターで次のことを試みましたが、うまくいきませんでした。

    this.addKeyListener(new KeyListener() {

        @Override
        public void keyPressed(KeyEvent e) {
            if(e.getKeyCode() == KeyEvent.VK_UP)
            {
               //DO Some things
            }
        }

        @Override
        public void keyTyped(KeyEvent e) {

        }

        @Override
        public void keyReleased(KeyEvent e) {

        }

    });

どんな助けでも大歓迎です。ありがとう

4

1 に答える 1

5

これは、JFrame をフォーカス可能にした後で JFrame にフォーカスを与えることで解決できますが、一度フォーカスを失うと、KeyListener は機能しなくなります。私の主な提案は、KeyListener を使用するのではなく、Key Bindings を使用することです。これらの関数は高レベルの構成要素であり、特にフォーカスの取得と喪失に関して Swing アプリケーションでうまく機能するからです。この件に関しては、似たような投稿がたくさんあります。お待ちいただければ、いくつかのリンクをご紹介します。

于 2012-06-02T22:49:52.783 に答える