Java でのキーコードの使用

Rupam Yadav 2023年10月12日
  1. Java で KeyListener を使用してキーコードをリッスンする
  2. Java で KeyEvent.getKeyText() を使用してキーコードとそのテキストの説明を出力する
Java でのキーコードの使用

今日は、キーボードのキーを表すキーコードを見ていきます。キーコードは、KeyEvent オブジェクトに割り当てられた整数コードです。

Java で KeyListener を使用してキーコードをリッスンする

この例では、フレームを作成し、下部に 2つのラベルが付いた入力フィールドを追加します。キーボードのキーをフィールドに入力すると、ラベルにキーに関する情報が表示されます。

以下のプログラムでは、Frame クラスを拡張し、KeyListener インターフェイスを実装するクラス JavaKeycodeExample を作成します。Frame クラスは、入力フィールドとラベルを配置するためのウィンドウを提供しますが、KeyListener インターフェイスを使用すると、キーイベントの識別に役立つ 3つのメソッドをオーバーライドできます。

JavaKeycodeExample クラスでは、label1label2 の 2つのラベルと、入力を受け取るテキストフィールド textField を作成します。AWT コンポーネントのサイズを初期化して設定し、それらをフレームに追加します。

addKeyListener() を使用して、KeyListenertextField に追加します。KeyListener インターフェースを実装したので、押されたキーを記録する keyPressed()、入力されたキーを識別する keyTyped()、そして最後のメソッド keyReleased() が呼び出す 3つのメソッドをオーバーライドする必要があります押されたキーを離したとき。

この例では、主に keyPressed() メソッドを使用します。このメソッドは、入力フィールドでキーが押されるたびに KeyEvent オブジェクト e を受け取ります。キーコードを押すには、KeyEvent オブジェクトを使用して getKeyCode() メソッドを呼び出し、結果を文字列で連結します。

また、メソッド KeyEvent.getKeyText() を使用してキーコードを表すテキストを取得し、e.getKeyCode() を渡します。最後に、両方の文字列をラベル label1label2 に設定します。

出力では、テキストフィールドのキーボードのキー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 キーコード

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 Yadav
Rupam Yadav avatar Rupam Yadav avatar

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