3

矢印キーと入力のナビゲーションを処理KeyboardFocusManagerするオーバーライドされたメソッドがあります。dispatchKeyEvent()キーが押されている限り、キーイベントを処理する必要があります。残念ながら、EnterKEY_TYPEDキーを押し続けると、キーの場所を含まないイベントが発生します。どのエンターが現在押されているかを調べる方法はありますか? KEY_TYPEDまたは、イベントを優先して入力のイベントを抑制することはできKEY_PRESSEDますか?

編集: KeyListeners の代わりに KeyboardFocusManager を使用して実行した理由はわかりませんが、この方法で実行した理由があったことは確かです。現在のところ、これを変更することはできません。問題は、私たちのシステム (古い端末エミュレーター) では、左のエンター キーがナビゲーション キーになっていることです。Enter キーを押すと、現在の行の次のテキスト フィールドにフォーカスが移動します。右側の Enter キーは、ユーザー入力をサーバーに送信するコマンド キーです。

4

1 に答える 1

3

KeyEventDemo「キーリスナーの書き方」にあるものを使用すると、またはのいずれKEY_PRESSEDかで説明した効果を再現できませんKEY_RELEASED。もちろん、「イベントには。」KEY_TYPEDはありません。keyLocation

多くのコンポーネントがすでに特定のキーを定義済みにバインドしているため、フォーカスリスナーを使用している理由は明確ではありません。このでは、ホストの設定によって調整された自動リピートイベントに応答する矢印キーをバインドします。Action

于 2012-06-19T18:09:52.633 に答える