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