モジュール java.desktop
パッケージ java.awt

インタフェースKeyEventPostProcessor

既知のすべての実装クラス:
DefaultFocusManager, DefaultKeyboardFocusManager, FocusManager, KeyboardFocusManager
関数型インタフェース:
これは関数型インタフェースなので、ラムダ式またはメソッド参照の代入先として使用できます。

@FunctionalInterface
public interface KeyEventPostProcessor
KeyEventPostProcessorは、未消費のすべてのKeyEventsの最終変換に関して現在のKeyboardFocusManagerと協力します。 現在のKeyboardFocusManagerによって登録されたKeyEventPostProcessorsは、KeyEventsがターゲットにディスパッチされ処理されたあとでKeyEventsを受け取ります。 そうでない場合は、アプリケーションのComponentが現在フォーカスを所有していないために破棄されるKeyEventsも登録されたKeyEventPostProcessorsに転送されます。 これにより、アプリケーションはメニュー・ショートカットなどグローバルKeyEventの事後処理を要求する機能を実装できるようになります。

KeyboardFocusManager自体がKeyEventPostProcessorを実装します。 デフォルトで、現在のKeyboardFocusManagerがチェーンの最終KeyEventPostProcessorになります。 現在のKeyboardFocusManagerはKeyEventPostProcessorとしての登録を完全に解除することはできません。 ただし、KeyEventPostProcessorがこれ以上KeyEventの事後処理が行われないことを報告する場合は、AWTはイベントが完全に処理されたものと見なし、イベントに関する追加の処理は何も行われません (クライアント・コードは、現在のKeyboardFocusManagerをKeyEventPostProcessorとして1回以上登録できますが、これは通常不要であり、お薦めできません)。

導入されたバージョン:
1.4
関連項目:
KeyboardFocusManager.addKeyEventPostProcessor(java.awt.KeyEventPostProcessor), KeyboardFocusManager.removeKeyEventPostProcessor(java.awt.KeyEventPostProcessor)
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    boolean postProcessKeyEvent​(KeyEvent e)
    このメソッドは、現在のKeyboardFocusManagerによって呼び出され、このKeyEventPostProcessorがKeyEventの最終変換の一部として必要な事後処理を実行するよう要求します。
  • メソッドの詳細

    • postProcessKeyEvent

      boolean postProcessKeyEvent​(KeyEvent e)
      このメソッドは、現在のKeyboardFocusManagerによって呼び出され、このKeyEventPostProcessorがKeyEventの最終変換の一部として必要な事後処理を実行するよう要求します。 このメソッドが呼び出されたときは、通常KeyEventはすでにターゲットにディスパッチされ、処理されています。 ただし、アプリケーションのComponentが現在フォーカスを所有していない場合、KeyEventはComponentにディスパッチされることはありません。 通常、KeyEventの事後処理はメニュー・ショートカットなどのグローバルなKeyEventの事後処理を要求する機能の実装に使用されます。 KeyEventPostProcessorがKeyEventをディスパッチしようとする場合、redispatchEventを使用して、AWTがこのKeyEventPostProcessorに再度イベントの事後処理を再帰的に要求することを防ぐ必要があります。

      このメソッドの実装がfalseを返す場合、KeyEventはチェーンの次のKeyEventPostProcessorに渡され、現在のKeyboardFocusManagerで終了します。 実装がtrueを返す場合、KeyEventは完全に処理されたものと見なされ(実際に処理される必要はありません)、AWTはKeyEventに関してこれ以上の処理は行いません。 実装がKeyEventを消費するにもかかわらずfalseを返す場合、消費されたイベントはなおチェーンの次のKeyEventPostProcessorに渡されます。 開発者はKeyEventの事後処理を実行する前にKeyEventが消費されているかどうかをチェックすることが重要です。 デフォルトで、現在のKeyboardFocusManagerは消費されたKeyEventに応答する事後処理は何も実行しません。

      パラメータ:
      e - プロセス終了後のKeyEvent
      戻り値:
      AWTがKeyEventに関してこれ以上の処理を行わない場合はtrue、そうでない場合はfalse
      関連項目:
      KeyboardFocusManager.redispatchEvent(java.awt.Component, java.awt.AWTEvent)