2017-03-04 2 views
0

JFrameにKeyListenerを追加しようとしています。押されたキーは、ActionListenerクラス内のすべてのコードを実行します。JFrameのキーリスト(actionlistener付き)

例:

私がF1を押すと、ActionListenerクラスがトリガーされます。すべての指示を行う。

助けが必要ですか? ありがとうございます。

答えて

1

KeyListenerにActionListenerを「コール」させないでください。むしろ、すべての命令で別個のメソッドを作成し、KeyListenerとActionListenerの両方でこの同じメソッドを呼び出さなければなりません。

この状況では、キーボードフォーカスを変更できるときに気まぐれに動作するKeyListenerを使用しないでください。代わりにKey Bindingsの使用を優先します。

1

キーを押すと、ActionListenerクラス内のすべてのコードが実行されます。

ActionListenerを使用する代わりに、Actionを使用できます。 Actionは基本的にActionListnerと同じですが、キーボードでの使用を容易にする追加のプロパティを定義することができます。詳しくは、How to Use ActionsのSwingチュートリアルのセクションを読んでください。補足として、SwingコンポーネントはActionsを使用するように設計されています。

あなたが作成した後Actionあなたは、さまざまなオプションがあります:

  1. あなたはJMenuItemActionを追加することができますし、「アクセラレータ」キーを定義した場合、F1キーがあるときにActionが自動的に起動されます押された

  2. JMenuItemを使用しない場合は、KeyStrokeActionに手動でバインドする必要があります。バインディングを手作業で追加するための基本については、[キーバインディングの作成と削除の方法]のSwingチュートリアルのセクションを参照してください(http://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html#howto)。