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の設定が必要です。)