Java でのキーコードの使用
今日は、キーボードのキーを表すキーコードを見ていきます。キーコードは、KeyEvent オブジェクトに割り当てられた整数コードです。
Java で KeyListener を使用してキーコードをリッスンする
この例では、フレームを作成し、下部に 2つのラベルが付いた入力フィールドを追加します。キーボードのキーをフィールドに入力すると、ラベルにキーに関する情報が表示されます。
以下のプログラムでは、Frame クラスを拡張し、KeyListener インターフェイスを実装するクラス JavaKeycodeExample を作成します。Frame クラスは、入力フィールドとラベルを配置するためのウィンドウを提供しますが、KeyListener インターフェイスを使用すると、キーイベントの識別に役立つ 3つのメソッドをオーバーライドできます。
JavaKeycodeExample クラスでは、label1 と label2 の 2つのラベルと、入力を受け取るテキストフィールド textField を作成します。AWT コンポーネントのサイズを初期化して設定し、それらをフレームに追加します。
addKeyListener() を使用して、KeyListener を textField に追加します。KeyListener インターフェースを実装したので、押されたキーを記録する keyPressed()、入力されたキーを識別する keyTyped()、そして最後のメソッド keyReleased() が呼び出す 3つのメソッドをオーバーライドする必要があります押されたキーを離したとき。
この例では、主に keyPressed() メソッドを使用します。このメソッドは、入力フィールドでキーが押されるたびに KeyEvent オブジェクト e を受け取ります。キーコードを押すには、KeyEvent オブジェクトを使用して getKeyCode() メソッドを呼び出し、結果を文字列で連結します。
また、メソッド KeyEvent.getKeyText() を使用してキーコードを表すテキストを取得し、e.getKeyCode() を渡します。最後に、両方の文字列をラベル label1 と label2 に設定します。
出力では、テキストフィールドのキーボードのキーk を押したことがわかります。最初のラベルはキーコードを出力し、2 番目のラベルはキーテキストを示します。
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class JavaKeycodeExample extends Frame implements KeyListener {
Label label1;
Label label2;
TextField textField;
public JavaKeycodeExample() {
label1 = new Label();
label1.setBounds(120, 220, 200, 20);
label2 = new Label();
label2.setBounds(120, 250, 200, 20);
textField = new TextField();
textField.setBounds(100, 100, 200, 100);
textField.addKeyListener(this);
add(label1);
add(label2);
add(textField);
setSize(350, 350);
setLayout(null);
setVisible(true);
}
public void keyPressed(KeyEvent e) {
String keyCodeString = "Last Key Code Pressed : " + e.getKeyCode();
String keyCodeAsTextString = "You pressed : " + KeyEvent.getKeyText(e.getKeyCode());
label1.setText(keyCodeString);
label2.setText(keyCodeAsTextString);
}
@Override
public void keyTyped(KeyEvent e) {}
@Override
public void keyReleased(KeyEvent e) {}
public static void main(String[] args) {
new JavaKeycodeExample();
}
}
出力:

Java で KeyEvent.getKeyText() を使用してキーコードとそのテキストの説明を出力する
キーボードのキーを表すキーコードはたくさんありますが、このプログラムではそれらのいくつかを出力します。0 から始まり 50 まで続く for ループを使用して、キーコードとそれを説明するキーテキストを取得します。
ループのすべての値がキーコードである可能性があるループでは、関数 KeyEvent.getKeyText() を使用してキーテキストを取得し、キーコード値を渡します。
すべての整数値がキーコードを表すわけではなく、Unknown keyCode のキーテキストを返す場合があることに注意してください。したがって、文字列 keyCodeText にテキストが含まれているかどうかを確認します。有効なキーコードの場合は、キーコードとキーコードテキストの両方を出力します。
出力では、矢印の左側がキーコードであり、矢印の右側がキーコードのテキスト説明であることがわかります。
import java.awt.event.KeyEvent;
public class JavaKeycodeExample {
public static void main(String[] args) {
for (int keyCode = 0; keyCode < 50; ++keyCode) {
String keyCodeText = KeyEvent.getKeyText(keyCode);
if (!keyCodeText.contains("Unknown keyCode")) {
System.out.println(keyCode + " ---> " + keyCodeText);
}
}
}
}
出力:
3 ---> Cancel
8 ---> Backspace
9 ---> Tab
10 ---> Enter
12 ---> Clear
16 ---> Shift
17 ---> Ctrl
18 ---> Alt
19 ---> Pause
20 ---> Caps Lock
21 ---> Kana
24 ---> Final
25 ---> Kanji
27 ---> Escape
28 ---> Convert
29 ---> No Convert
30 ---> Accept
31 ---> Mode Change
32 ---> Space
33 ---> Page Up
34 ---> Page Down
35 ---> End
36 ---> Home
37 ---> Left
38 ---> Up
39 ---> Right
40 ---> Down
44 ---> Comma
45 ---> Minus
46 ---> Period
47 ---> Slash
48 ---> 0
49 ---> 1
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn