JavaTM 2 Platform
Standard Ed. 6

javax.swing
類別 KeyStroke

java.lang.Object
  繼承者 java.awt.AWTKeyStroke
      繼承者 javax.swing.KeyStroke
所有已實作的介面:
Serializable

public class KeyStroke
extends AWTKeyStroke

表示鍵盤或等效輸入設置上的鍵操作的 KeyStroke。KeyStroke 僅能對應於按下或釋放某個特定的鍵,正如 KEY_PRESSED 和 KEY_RELEASED KeyEvents 執行的操作;或者,它們可能對應於鍵入特定的 Java 字元,正如 KEY_TYPED KeyEvents 執行的操作。在所有情況下,KeyStroke 都可以指定修飾符(alt、shift、control、meta、altGraph 或其組合),在針對精確比對的操作中,這些修飾符必須存在。

KeyStroke 用於定義高層級(語義)操作事件。不用捕獲每個 keystroke 並拋棄不感興趣的 keystroke,這些重要的 keystroke 會自動在其註冊的 Components 上啟動操作。

KeyStroke 是不可變的,而且是唯一的。客戶端程式碼無法創建 KeyStroke;必須使用 getKeyStroke 的變體。這些處理器方法使得 KeyStroke 實作能夠高效快取記憶體和共享實例。

警告:此類別的序列化物件與以後的 Swing 版本不相容。當前序列化支持適用於短期存儲,或適用於在運行相同 Swing 版本的應用程序之間進行 RMI(Remote Method Invocation,遠端方法調用)。從 1.4 版本開始,已在 java.beans 套件中添加了支持所有 JavaBeansTM 長期存儲的功能。請參見 XMLEncoder

另請參見:
Keymap, getKeyStroke(char)

方法摘要
static KeyStroke getKeyStroke(char keyChar)
          返回 KeyStroke 的共享實例,前者表示指定字元的 KEY_TYPED 事件。
static KeyStroke getKeyStroke(Character keyChar, int modifiers)
          返回 KeyStroke 的一個共享實例,它表示指定 Character 物件和一組修飾符的 KEY_TYPED 事件。
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)
          返回一個 KeyStroke,它表示產生給定 KeyEvent 的快捷鍵事件。
 
從類別 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)
返回 KeyStroke 的共享實例,前者表示指定字元的 KEY_TYPED 事件。

參數:
keyChar - 鍵盤上某個鍵的字元值
返回:
該鍵的 KeyStroke 物件

getKeyStroke

@Deprecated
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)
返回 KeyStroke 的一個共享實例,它表示指定 Character 物件和一組修飾符的 KEY_TYPED 事件。注意,第一個參數是 Character 型別而不是 char 型別。這是為了避免在調用 getKeyStroke(int keyCode, int modifiers) 時發生無意的衝突。 修飾符由以下任意組合組成: 也可以使用下面列出的舊的修飾符,但它們被映射到 _DOWN_ 修飾符。 也可以使用,但它們被映射到 _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 中定義的“虛擬鍵”常數來指定鍵程式碼。例如:

修飾符由以下任意組合組成: 舊的修飾符 也可以使用,但它們被映射到 _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 中定義的“虛擬鍵”常數來指定鍵程式碼。例如:

修飾符由以下任意組合組成: 舊的修飾符 也可以使用,但它們被映射到 _DOWN_ 修飾符。 因為這些數字都是 2 的不同次方,所以它們的任意組合是一個整數,該整數的每個位都表示一個不同的修飾符鍵。可以使用 0 指定無修飾符。

參數:
keyCode - 一個 int,指定鍵盤上某個鍵的數字程式碼
modifiers - 任意修飾符的按位或組合
返回:
該鍵的 KeyStroke 物件
另請參見:
KeyEvent, InputEvent

getKeyStrokeForEvent

public static KeyStroke getKeyStrokeForEvent(KeyEvent anEvent)
返回一個 KeyStroke,它表示產生給定 KeyEvent 的快捷鍵事件。

此方法獲得來自 KeyTyped 事件的 keyChar,以及來自 KeyPressed 或 KeyReleased 事件的 keyCode。為所有三種型別的 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');
 
為了維持向後相容性,指定 null String 或格式不正確的 String 將返回 null。

參數:
s - 用上述方法格式化的 String
返回:
該 String 的 KeyStroke 物件,如果指定的 String 為 null 或格式不正確,則返回 null

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only