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();
}