JAvaキーボードリスニングの詳細
その他のサンプルコードは、私の他のブログまたはGitHubを参照してください.不定期に更新し、学習中に使うものはどこに書いて、テンプレートとして後で使用し、復習します.
一般的に、コンポーネントにリスニングを追加するコードは、次のような形式です.
(この段落の*は同じ単語を表しています)
上のパラメータは対応するインタフェースの内部クラスを実現しているので、インタフェースのすべての方法を実現する必要があります.たとえ使わなくても.コードを簡潔にするために、Javaはいくつかの方法のインタフェースに対して、このインタフェースを実現する適切なクラス:*Adapter)を提供しているので、リスニングを追加しても以下の形式を使用することができます.
キーボードリスニング
コードの例:
または
キー押下イベントは、キー入力に必要な不十分な条件であり、キー押下イベントとキー入力イベントが複数対1である可能性がある.
[キーを押す](Push Key)イベントと[キーを解放](Release Key)イベント プラットフォームとキーボードのレイアウトに依存する低レベルのイベントです.これらのイベントは、キーを押したり放したりするだけで生成され、動作キー、修正キーなどの文字入力を生成しないキーを発見する唯一の方法です.キーEventオブジェクトのgetKeyCodeメソッドを使用すると、キーが押されたか解放されたかを示すことができ、このメソッドは仮想キーコードを返します.
KeyEventの詳細:
メソッドの概要:
char
getKeyChar() このイベントのキーに関連付けられた文字を返します.
int
getKeyCode() このイベントのキーに関連付けられた整数keyCodeを返します.
int
getKeyLocation() このキーイベントを生成するキーの場所を返します.
static String
getKeyModifiersText(int modifiers) 「Shift」や「Ctrl+Shift」などの修正キーを記述するStringを返します.
static String
getKeyText(int keyCode) 「HOME」、「F 1」、または「A」などのkeyCodeを記述するStringを返します.
boolean
isActionKey() このイベントのキーが[アクション](Action)キーであるかどうかを返します.
String
paramString() このイベントを識別するパラメータ文字列を返します.
void
setKeyChar(char keyChar) 論理文字を表すkeyCode値を設定します.
void
setKeyCode(int keyCode) 物理キーを表すkeyCode値を設定します.
getKeyCharメソッドは、常に有効なUnicode文字またはCHAR_を返します.UNDEFINED.KEY_TYPEDイベントレポート文字入力:KEY_PRESSEDとKEY_RELEASEDイベントは文字入力に関連付ける必要はありません.したがって,getKeyCharメソッドの結果はKEY_のみであることが保証される.TYPEDイベントは意味があります.
キーの押下とキーの解放イベントの場合、getKeyCodeメソッドはイベントのkeyCodeを返します.キー入力イベントの場合、getKeyCodeメソッドは常にVK_を返します.UNDEFINED.
共通フィールドの概要:(詳細はjavaドキュメントを参照)
static int
VK_0 VK_0~VK_9 ASCIIの「0」から「9」(0 x 30-0 x 39)と同じ
static int
VK_A VK_AからVK_ZはASCIIの‘A’から‘Z’(0 x 41−0 x 5 A)と同じである
static int
VK_LEFT_PARENTHESIS "("
static int
VK_MINUS "-"
static int
VK_NUMBER_SIGN "#"
static int
VK_OPEN_BRACKET "["
static int
VK_PERIOD "."
static int
VK_PLUS "+"
static int
VK_AT "@"
static int
VK_BACK_SLASH "\"
static int
VK_CLOSE_BRACKET "]"
static int
VK_COLON ":"
static int
VK_COMMA ","
static int
VK_RIGHT_PARENTHESIS ")"
static int
VK_SEMICOLON ";"
static int
VK_SLASH "/"
static int
VK_UNDERSCORE "_"
static int
VK_DOLLAR "$"
static int
VK_EQUALS "="
static int
VK_EURO_SIGN 欧州通貨記号キーに使用される定数.
static int
VK_EXCLAMATION_MARK "!"
static int
VK_F1 F 1機能キーの定数です.
static int
VK_F2 F 2ファンクションキーの定数です.
static int
VK_F3 F 3機能キーの定数です.
static int
VK_F4 F 4ファンクションキーの定数です.
static int
VK_F5 F 5ファンクションキーの定数です.
static int
VK_F6 F 6ファンクションキーの定数です.
static int
VK_F7 F 7ファンクションキーの定数です.
static int
VK_F8 F 8機能キーの定数です.
static int
VK_F9 F 9機能キーの定数です.
static int
VK_F16 F 16ファンクションキーの定数です.
static int
VK_F17 F 17ファンクションキーの定数です.
static int
VK_F18 F 18ファンクションキーの定数です.
static int
VK_F19 F 19ファンクションキーの定数です.
static int
VK_F20 F 20機能キーの定数です.
static int
VK_F21 F 21機能キーの定数です.
static int
VK_F22 F 22機能キーの定数です.
static int
VK_F23 F 23機能キーの定数です.
static int
VK_F24 F 24機能キーの定数です.
static int
VK_KP_DOWN テンキーの下矢印キーに使用する定数.
static int
VK_KP_LEFT テンキーの左矢印キーに使用する定数.
static int
VK_KP_RIGHT テンキーの右向きキーに使用する定数.
static int
VK_KP_UP テンキーの上向きキーに使用する定数.
static int
VK_LEFT テンキー以外の左矢印キーに使用する定数.
static int
VK_RIGHT 数値以外のキーボードの右方向キーに使用される定数.
static int
VK_UP テンキー以外の上向きキーに使用する定数.
static int
VK_DOWN 数値以外のキーボードの下矢印キーに使用する定数.
static char
CHAR_UNDEFINED KEY_PRESSEDとKEY_RELEASEDイベントが有効なUnicode文字にマッピングされていない場合、この値をkeyChar値として使用します.
static int
KEY_LOCATION_NUMPAD この定数指示キーイベントは、デジタルキーボードまたはデジタルキーボードに対応する仮想キーから発生します.
static int
VK_UNDEFINED この値はkeyCodeが不明であることを示すために使用されます.
static int
VK_COPY
static int
VK_CUT
static int
VK_PASTE
static int
VK_HOME
参考ドキュメント:java公式ドキュメント中国語版
一般的に、コンポーネントにリスニングを追加するコードは、次のような形式です.
(この段落の*は同じ単語を表しています)
object.add*Listener(new *Listener() {
@Override
// ...
});
上のパラメータは対応するインタフェースの内部クラスを実現しているので、インタフェースのすべての方法を実現する必要があります.たとえ使わなくても.コードを簡潔にするために、Javaはいくつかの方法のインタフェースに対して、このインタフェースを実現する適切なクラス:*Adapter)を提供しているので、リスニングを追加しても以下の形式を使用することができます.
object.add*Listener(new *Adapter() {
@Override
// ...
});
キーボードリスニング
コードの例:
object.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
// 。 。
}
@Override
public void keyReleased(KeyEvent e) {
// 。 。
}
@Override
public void keyPressed(KeyEvent arg0) {
// 。 。
//
}
});
または
object.addKeyListener(new KeyAdapter() {
//
});
キー押下イベントは、キー入力に必要な不十分な条件であり、キー押下イベントとキー入力イベントが複数対1である可能性がある.
[キーを押す](Push Key)イベントと[キーを解放](Release Key)イベント プラットフォームとキーボードのレイアウトに依存する低レベルのイベントです.これらのイベントは、キーを押したり放したりするだけで生成され、動作キー、修正キーなどの文字入力を生成しないキーを発見する唯一の方法です.キーEventオブジェクトのgetKeyCodeメソッドを使用すると、キーが押されたか解放されたかを示すことができ、このメソッドは仮想キーコードを返します.
KeyEventの詳細:
メソッドの概要:
char
getKeyChar() このイベントのキーに関連付けられた文字を返します.
int
getKeyCode() このイベントのキーに関連付けられた整数keyCodeを返します.
int
getKeyLocation() このキーイベントを生成するキーの場所を返します.
static String
getKeyModifiersText(int modifiers) 「Shift」や「Ctrl+Shift」などの修正キーを記述するStringを返します.
static String
getKeyText(int keyCode) 「HOME」、「F 1」、または「A」などのkeyCodeを記述するStringを返します.
boolean
isActionKey() このイベントのキーが[アクション](Action)キーであるかどうかを返します.
String
paramString() このイベントを識別するパラメータ文字列を返します.
void
setKeyChar(char keyChar) 論理文字を表すkeyCode値を設定します.
void
setKeyCode(int keyCode) 物理キーを表すkeyCode値を設定します.
getKeyCharメソッドは、常に有効なUnicode文字またはCHAR_を返します.UNDEFINED.KEY_TYPEDイベントレポート文字入力:KEY_PRESSEDとKEY_RELEASEDイベントは文字入力に関連付ける必要はありません.したがって,getKeyCharメソッドの結果はKEY_のみであることが保証される.TYPEDイベントは意味があります.
キーの押下とキーの解放イベントの場合、getKeyCodeメソッドはイベントのkeyCodeを返します.キー入力イベントの場合、getKeyCodeメソッドは常にVK_を返します.UNDEFINED.
共通フィールドの概要:(詳細はjavaドキュメントを参照)
static int
VK_0 VK_0~VK_9 ASCIIの「0」から「9」(0 x 30-0 x 39)と同じ
static int
VK_A VK_AからVK_ZはASCIIの‘A’から‘Z’(0 x 41−0 x 5 A)と同じである
static int
VK_LEFT_PARENTHESIS "("
static int
VK_MINUS "-"
static int
VK_NUMBER_SIGN "#"
static int
VK_OPEN_BRACKET "["
static int
VK_PERIOD "."
static int
VK_PLUS "+"
static int
VK_AT "@"
static int
VK_BACK_SLASH "\"
static int
VK_CLOSE_BRACKET "]"
static int
VK_COLON ":"
static int
VK_COMMA ","
static int
VK_RIGHT_PARENTHESIS ")"
static int
VK_SEMICOLON ";"
static int
VK_SLASH "/"
static int
VK_UNDERSCORE "_"
static int
VK_DOLLAR "$"
static int
VK_EQUALS "="
static int
VK_EURO_SIGN 欧州通貨記号キーに使用される定数.
static int
VK_EXCLAMATION_MARK "!"
static int
VK_F1 F 1機能キーの定数です.
static int
VK_F2 F 2ファンクションキーの定数です.
static int
VK_F3 F 3機能キーの定数です.
static int
VK_F4 F 4ファンクションキーの定数です.
static int
VK_F5 F 5ファンクションキーの定数です.
static int
VK_F6 F 6ファンクションキーの定数です.
static int
VK_F7 F 7ファンクションキーの定数です.
static int
VK_F8 F 8機能キーの定数です.
static int
VK_F9 F 9機能キーの定数です.
static int
VK_F16 F 16ファンクションキーの定数です.
static int
VK_F17 F 17ファンクションキーの定数です.
static int
VK_F18 F 18ファンクションキーの定数です.
static int
VK_F19 F 19ファンクションキーの定数です.
static int
VK_F20 F 20機能キーの定数です.
static int
VK_F21 F 21機能キーの定数です.
static int
VK_F22 F 22機能キーの定数です.
static int
VK_F23 F 23機能キーの定数です.
static int
VK_F24 F 24機能キーの定数です.
static int
VK_KP_DOWN テンキーの下矢印キーに使用する定数.
static int
VK_KP_LEFT テンキーの左矢印キーに使用する定数.
static int
VK_KP_RIGHT テンキーの右向きキーに使用する定数.
static int
VK_KP_UP テンキーの上向きキーに使用する定数.
static int
VK_LEFT テンキー以外の左矢印キーに使用する定数.
static int
VK_RIGHT 数値以外のキーボードの右方向キーに使用される定数.
static int
VK_UP テンキー以外の上向きキーに使用する定数.
static int
VK_DOWN 数値以外のキーボードの下矢印キーに使用する定数.
static char
CHAR_UNDEFINED KEY_PRESSEDとKEY_RELEASEDイベントが有効なUnicode文字にマッピングされていない場合、この値をkeyChar値として使用します.
static int
KEY_LOCATION_NUMPAD この定数指示キーイベントは、デジタルキーボードまたはデジタルキーボードに対応する仮想キーから発生します.
static int
VK_UNDEFINED この値はkeyCodeが不明であることを示すために使用されます.
static int
VK_COPY
static int
VK_CUT
static int
VK_PASTE
static int
VK_HOME
参考ドキュメント:java公式ドキュメント中国語版