Sample : KeyboardFocusManagerについて

実装サンプル:なし

java.awt.KeyboardFocusManagerとは、フォーカスの所有者とKEY処理を管理しているクラスです。
KEYイベントはこのクラスを経由して、"どのコンポーネントに対して" "どのタイミングで" などが制御された後に 対象コンポーネントの javax.swing.JComponent#processKeyEvent(java.awt.event.KeyEvent) などに 処理を受け渡されます。

Swing標準ではjava.awt.DefaultKeyboardFocusManagerが設定されています。
Default・・・ という名称になっていますが、クラス内部はjavaパッケージでないと使用できないメソッドなどが 多用されていますので、基本的には "このクラスをサンプルに、KeyboardFocusManagerを作り直す" というものではなく、 そのまま使用する方が一般的です。

このクラスは、Swingでの動きの中核を握っているクラスの一つになりますので、 java.awt.DefaultKeyboardFocusManagerを継承して、処理を追加する ことにより、用意に目的を達することが出来る場合があります。
例えば、「このタイミングで入力されたKEYは無視したい」という目的など。

KeyboardFocusManager を入替えは
java.awt.KeyboardFocusManager#setCurrentKeyboardFocusManager(java.awt.KeyboardFocusManager)
のメソッドを使用します。
もしくは RunClient.wdg(Config) にて設定も可能です。 ([公式Document] ClientJava / 設定/KeyboradFocusManagerの設定)
javadoc にもコメントにもありますが、このメソッド操作は AWTPermission "replaceKeyboardFocusManager" のアクセス権が必要です。
JWSやAppletにて動作させる時には注意してください。(署名もしくはjava.policyの設定が必要です。)

Valid XHTML 1.1