JavaTM 2
Platform
Std. Ed. v1.4.0

javax.swing
クラス KeyStroke

java.lang.Object
  |
  +--java.awt.AWTKeyStroke
        |
        +--javax.swing.KeyStroke
すべての実装インタフェース:
Serializable

public class KeyStroke
extends AWTKeyStroke

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

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

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

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

関連項目:
Keymap, getKeyStroke(char)

メソッドの概要
static KeyStroke getKeyStroke(char keyChar)
          指定された文字の KEY_TYPED イベントを表す KeyStroke の共有インスタンスを返します。
static KeyStroke getKeyStroke(Character keyChar, int modifiers)
          Character オブジェクトと修飾子のセットが指定されると、キーストロークの共有インスタンスを返します。
static KeyStroke getKeyStroke(char keyChar, boolean onKeyRelease)
          推奨されていません。 getKeyStroke(char) を使用
static KeyStroke getKeyStroke(int keyCode, int modifiers)
          数値キーコードおよび修飾子のセットが指定されると、KeyStroke の共有インスタンスを返します。
static KeyStroke getKeyStroke(int keyCode, int modifiers, boolean onKeyRelease)
          数値キーコードおよび修飾子のセットが指定されると、KeyStroke の共有インスタンスを返します。
static KeyStroke getKeyStroke(String s)
          文字列の構文を解析し、KeyStroke を返します。
static KeyStroke getKeyStrokeForEvent(KeyEvent anEvent)
          指定された KeyEvent を生成したストロークを表す KeyStroke を返します。
 
クラス java.awt.AWTKeyStroke から継承したメソッド
equals, getAWTKeyStroke, getAWTKeyStroke, getAWTKeyStroke, getAWTKeyStroke, getAWTKeyStroke, getAWTKeyStrokeForEvent, getKeyChar, getKeyCode, getKeyEventType, getModifiers, hashCode, isOnKeyRelease, readResolve, registerSubclass, toString
 
クラス java.lang.Object から継承したメソッド
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

メソッドの詳細

getKeyStroke

public static KeyStroke getKeyStroke(char keyChar)
指定された文字の KEY_TYPED イベントを表す KeyStroke の共有インスタンスを返します。

パラメータ:
keyChar - キーボードのキーの文字値
戻り値:
そのキーの KeyStroke オブジェクト

getKeyStroke

public 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 オブジェクトと修飾子のセットが指定されると、キーストロークの共有インスタンスを返します。最初のパラメータは char 型ではなく Character 型のパラメータです。これは、不注意による getKeyStroke(int keyCode, int modifiers) 呼び出しとの重複を避けるためです。修飾子は、次の値を自由に組み合わせて指定できます。 これらの数字はすべて異なる 2 の累乗であるため、それらの組み合わせは各ビットが別々の修飾キーを表す整数です。修飾子を指定しない場合は、0 を使います。

パラメータ:
keyChar - キーボード文字の Character オブジェクト
modifiers - 修飾子のビット単位の論理和
戻り値:
そのキーの KeyStroke オブジェクト
導入されたバージョン:
1.3
関連項目:
InputEvent

getKeyStroke

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

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

修飾子は、次の組み合わせで構成されます。 これらの数字はすべて異なる 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 で定義される「仮想キー」定数は、キーコードを指定するために使用できます。次に例を示します。

修飾子は、次の組み合わせで構成されます。 これらの数字はすべて異なる 2 の累乗であるため、それらの組み合わせは各ビットが別々の修飾キーを表す整数です。修飾子を指定しない場合は、0 を使います。

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

getKeyStrokeForEvent

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

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

パラメータ:
anEvent - KeyStroke の取得元 KeyEvent
戻り値:
イベントを発生させた KeyStroke

getKeyStroke

public static KeyStroke getKeyStroke(String s)
文字列の構文を解析し、KeyStroke を返します。文字列は以下の構文を持つ必要があります。
<modifiers>* (<typedID> | <pressedReleasedID>)
modifiers := shift | control | ctrl | meta | alt | button1 | button2 | button3
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

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.