バックグラウンド
私のウィンドウはjava.awt.Frameであり、フレームの内側には2つのパネル(java.awt.Panel)があります。押したボタンがウィンドウで処理されるようにしようとしています。
ナンバー1を試す
KeyListenerを使用して、FrameにKeyListenerを実装させてみました。KeyListenerをフレームに追加しましたが、キーを押してもKeyListener関数は何もしませんでした。(System.out.println()で印刷してみました。)
番号2を試してください
私はこのチュートリアルに従ってみました:http://tips4java.wordpress.com/2008/10/10/key-bindings/。スペースバーを押すことを処理する私の試みは次のとおりです。
public void registerActions(){ //01
Action myAction = new AbstractAction(){ //02
@Override //03
public void actionPerformed(ActionEvent e) { //04
System.out.println("GREAT SUCCESS!"); //05
} //06
}; //07
KeyStroke key = KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0); //08
component.getInputMap().put(key, "myAction"); //09
component.getActionMap().put("myAction", myAction); //10
} //11
主な問題は、アプリケーションにJComponentがないため、09行目と10行目の「component」が何であるかわからないことです。
私の質問
スイングコンポーネントを使用せずにこれを行う方法はありますか?または、キーの押下を処理する別の方法はありますか?