モジュール java.desktop
パッケージ javax.swing

クラスKeyStroke

すべての実装されたインタフェース:
Serializable

public class KeyStroke
extends AWTKeyStroke
KeyStrokeは、キーボードまたは同等の入力デバイスのキー・アクションを表します。 KeyStrokeは、KeyEventのKEY_PRESSEDおよびKEY_RELEASEDと同様に、特定のキーを押す、または放す動作のみに対応させることも、KeyEventのKEY_TYPEDと同様に特定のJava文字のキーボード入力に対応させることもできます。 どちらの場合も、修飾子(alt、shift、control、meta、altGraphまたはそれらの組合せ)を指定できます。これらの修飾子は、完全一致のアクション時に存在する必要があります。

KeyStrokeは、ハイレベル(意味上)のアクション・イベントを定義するために使用されます。 すべてのキー・ストロークをトラップし、関係のないものを破棄する代わりに、注目すべきキー・ストロークはそれらが登録されているコンポーネントで自動的にアクションを起こします。

KeyStrokeは不変であり、一意であることが想定されています。 クライアント・コードではKeyStrokeを作成できません。かわりに、getKeyStrokeのバリアントを使用する必要があります。 これらのファクトリ・メソッドによって、インスタンスのキャッシュと共有を効率的に行うようにKeyStrokeを実装できます。

警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースと互換ではなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4では、すべてのJavaBeansの長期ストレージのサポートがjava.beansパッケージに追加されました。 XMLEncoderを参照してください。

導入されたバージョン:
1.2
関連項目:
Keymap, getKeyStroke(char)
  • メソッドの詳細

    • getKeyStroke

      public static KeyStroke getKeyStroke​(char keyChar)
      指定された文字のKEY_TYPEDイベントを表すKeyStrokeの共有インスタンスを返します。
      パラメータ:
      keyChar - キーボード・キーの文字値
      戻り値:
      そのキーのKeyStrokeオブジェクト
    • getKeyStroke

      @Deprecatedpublic static KeyStroke getKeyStroke​(char keyChar, boolean onKeyRelease)
      非推奨。
      getKeyStroke(char)を使用
      キーを押したとき、または放したときにキーがアクティブになるかどうかを示す、KeyStrokeのインスタンスを返します。 このクラスに含まれるほかのファクトリ・メソッドと異なり、このメソッドが返すインスタンスは、必ずしもキャッシュへの書き込みや共有が行われるわけではありません。
      パラメータ:
      keyChar - キーボード・キーの文字値
      onKeyRelease - このKeyStrokeがキーを放す動作に対応する場合はtrue、そうでない場合はfalse
      戻り値:
      そのキーのKeyStrokeオブジェクト
    • getKeyStroke

      public static KeyStroke getKeyStroke​(Character keyChar, int modifiers)
      指定されたCharacterオブジェクトと修飾子のセットのKEY_TYPEDイベントを表すKeyStrokeの共有インスタンスを返します。 最初のパラメータはchar型ではなくCharacter型のパラメータです。 これは、不注意によるgetKeyStroke(int keyCode, int modifiers)呼び出しとの競合を避けるためです。 修飾子は、次の組み合わせで構成されます。
      • java.awt.event.InputEvent.SHIFT_DOWN_MASK
      • java.awt.event.InputEvent.CTRL_DOWN_MASK
      • java.awt.event.InputEvent.META_DOWN_MASK
      • java.awt.event.InputEvent.ALT_DOWN_MASK
      • java.awt.event.InputEvent.ALT_GRAPH_DOWN_MASK
      次に示す古い修飾子も使用できますが、これらは_DOWN_修飾子にマッピングされます。
      • java.awt.event.InputEvent.SHIFT_MASK
      • java.awt.event.InputEvent.CTRL_MASK
      • java.awt.event.InputEvent.META_MASK
      • java.awt.event.InputEvent.ALT_MASK
      • java.awt.event.InputEvent.ALT_GRAPH_MASK
      これらも使用できますが、これらは_DOWN_修飾子にマッピングされます。 これらの数字はすべて異なる2の累乗であるため、それらの組み合わせは各ビットが別々の修飾キーを表す整数です。 修飾子を指定しない場合は、0を使います。
      パラメータ:
      keyChar - キーボード文字のCharacterオブジェクト
      modifiers - 任意の修飾子のビット単位の論理和の組み合わせ
      戻り値:
      そのキーのKeyStrokeオブジェクト
      例外:
      IllegalArgumentException - keyCharがnullの場合
      導入されたバージョン:
      1.3
      関連項目:
      InputEvent
    • getKeyStroke

      public static KeyStroke getKeyStroke​(int keyCode, int modifiers, boolean onKeyRelease)
      数値キー・コードおよび修飾子のセットが指定されると、KeyStrokeの共有インスタンスを返します。このインスタンスは、キーを押したときまたは放したときにキーがアクティブになるかどうかを示します。

      java.awt.event.KeyEventで定義される「仮想キー」定数は、キー・コードを指定するために使用できます。 例を示します。

      • java.awt.event.KeyEvent.VK_ENTER
      • java.awt.event.KeyEvent.VK_TAB
      • java.awt.event.KeyEvent.VK_SPACE
      または、java.awt.event.KeyEvent.getExtendedKeyCodeForCharを呼び出すことで、キー・コードを取得することもできます。 修飾子は、次の組み合わせで構成されます。
      • java.awt.event.InputEvent.SHIFT_DOWN_MASK
      • java.awt.event.InputEvent.CTRL_DOWN_MASK
      • java.awt.event.InputEvent.META_DOWN_MASK
      • java.awt.event.InputEvent.ALT_DOWN_MASK
      • java.awt.event.InputEvent.ALT_GRAPH_DOWN_MASK
      以前使われていた修飾子を次に挙げます。
      • java.awt.event.InputEvent.SHIFT_MASK
      • java.awt.event.InputEvent.CTRL_MASK
      • java.awt.event.InputEvent.META_MASK
      • java.awt.event.InputEvent.ALT_MASK
      • java.awt.event.InputEvent.ALT_GRAPH_MASK
      これらも使用できますが、これらは_DOWN_修飾子にマッピングされます。 これらの数字はすべて異なる2の累乗であるため、それらの組み合わせは各ビットが別々の修飾キーを表す整数です。 修飾子を指定しない場合は、0を使います。

      パラメータ:
      keyCode - キーボード・キーの数値コードを指定するint
      modifiers - 任意の修飾子のビット単位の論理和の組み合わせ
      onKeyRelease - KeyStrokeがキーを放す動作を表す場合はtrue、そうでない場合はfalse
      戻り値:
      そのキーのKeyStrokeオブジェクト
      関連項目:
      KeyEvent, InputEvent
    • getKeyStroke

      public static KeyStroke getKeyStroke​(int keyCode, int modifiers)
      数値キー・コードおよび修飾子のセットが指定されると、KeyStrokeの共有インスタンスを返します。 返されるKeyStrokeは、キーを押す動作に対応します。

      java.awt.event.KeyEventで定義される「仮想キー」定数は、キー・コードを指定するために使用できます。 例を示します。

      • java.awt.event.KeyEvent.VK_ENTER
      • java.awt.event.KeyEvent.VK_TAB
      • java.awt.event.KeyEvent.VK_SPACE
      または、java.awt.event.KeyEvent.getExtendedKeyCodeForCharを呼び出すことで、キー・コードを取得することもできます。 修飾子は、次の組み合わせで構成されます。
      • java.awt.event.InputEvent.SHIFT_DOWN_MASK
      • java.awt.event.InputEvent.CTRL_DOWN_MASK
      • java.awt.event.InputEvent.META_DOWN_MASK
      • java.awt.event.InputEvent.ALT_DOWN_MASK
      • java.awt.event.InputEvent.ALT_GRAPH_DOWN_MASK
      以前使われていた修飾子を次に挙げます。
      • java.awt.event.InputEvent.SHIFT_MASK
      • java.awt.event.InputEvent.CTRL_MASK
      • java.awt.event.InputEvent.META_MASK
      • java.awt.event.InputEvent.ALT_MASK
      • java.awt.event.InputEvent.ALT_GRAPH_MASK
      これらも使用できますが、これらは_DOWN_修飾子にマッピングされます。 これらの数字はすべて異なる2の累乗であるため、それらの組み合わせは各ビットが別々の修飾キーを表す整数です。 修飾子を指定しない場合は、0を使います。

      パラメータ:
      keyCode - キーボード・キーの数値コードを指定するint
      modifiers - 任意の修飾子のビット単位の論理和の組み合わせ
      戻り値:
      そのキーのKeyStrokeオブジェクト
      関連項目:
      KeyEvent, InputEvent
    • getKeyStrokeForEvent

      public static KeyStroke getKeyStrokeForEvent​(KeyEvent anEvent)
      指定されたKeyEventを生成したストロークを表すKeyStrokeを返します。

      このメソッドは、KeyTypedイベントからkeyCharを取得し、KeyPressedまたはKeyReleasedイベントからkeyCodeを取得します。 また、3つのKeyEvent型のすべてからKeyEvent修飾子を取得します。

      パラメータ:
      anEvent - KeyStrokeの取得元KeyEvent
      戻り値:
      イベントを発生させたKeyStroke
      例外:
      NullPointerException - anEventがnullである場合
    • getKeyStroke

      public static KeyStroke getKeyStroke​(String s)
      文字列の構文を解析し、KeyStrokeを返します。 文字列は次の構文を持つ必要があります。
          <modifiers>* (<typedID> | <pressedReleasedID>)
      
          modifiers := shift | control | ctrl | meta | alt | altGraph
          typedID := typed <typedKey>
          typedKey := string of length 1 giving Unicode character.
          pressedReleasedID := (pressed | released) key
          key := KeyEvent key code name, i.e. the name following "VK_".
       
      タイプするのか、押すのか、離すのかが指定されない場合、押すと見なされます。 いくつか例を挙げます。
           "INSERT" => getKeyStroke(KeyEvent.VK_INSERT, 0);
           "control DELETE" => getKeyStroke(KeyEvent.VK_DELETE, InputEvent.CTRL_MASK);
           "alt shift X" => getKeyStroke(KeyEvent.VK_X, InputEvent.ALT_MASK | InputEvent.SHIFT_MASK);
           "alt shift released X" => getKeyStroke(KeyEvent.VK_X, InputEvent.ALT_MASK | InputEvent.SHIFT_MASK, true);
           "typed a" => getKeyStroke('a');
       
      下位互換性を維持するため、Stringがnullまたは構文誤りの場合、nullが戻ります。
      パラメータ:
      s - 上記の構文に従って指定したString
      戻り値:
      そのStringのKeyStrokeオブジェクト。指定のStringがnullの場合、またはフォーマットが正しくない場合はnull
      関連項目:
      KeyEvent