1

gameFrame という JFrame があり、それに introPanel という Jpanel を追加しました。キーgameFrame.add(introPanel)リスナーで JPanel をリッスンしたかったので、1 つ追加しました。ユーザーが Enter キーを押すと、JPanel を gameFrame から削除し、理論的には MainMenu を追加しましたが、プログラムはキーをリッスンしません。そこで、オンラインでSOを調べたところ、パネルをフォーカス可能にする必要があることがわかったので、次のようにしました。

public IntroMenuStart() {
        this.addKeyListener(this);

        this.setFocusable(true);
        this.requestFocusInWindow();
}

しかし、これもうまくいきませんでした。これを修正するために他に何ができますか?

各パネルは個別のクラスであり、それらはすべてゲームフレームから削除され、次のパネルが追加されます。

キーリスナーでこれを行うことをお勧めします。

編集

知りたい人のためにコードにこれを含めて修正しましたが、2つの回答が示唆するようにコードをキーバインドに変更します。

public void addNotify() {
    super.addNotify();
    requestFocus();
}
4

2 に答える 2