在 Java 中使用鍵碼

Rupam Yadav 2023年1月30日 2022年4月27日
  1. 在 Java 中使用 `KeyListener’來監聽按鍵程式碼
  2. 在 Java 中使用 KeyEvent.getKeyText() 列印鍵程式碼及其文字描述
在 Java 中使用鍵碼

今天我們將研究代表鍵盤上按鍵的按鍵程式碼。鍵碼是分配給 KeyEvent 物件的整數程式碼。

在 Java 中使用 `KeyListener’來監聽按鍵程式碼

在此示例中,我們建立一個框架並在其底部新增一個帶有兩個標籤的輸入欄位。當我們在該欄位中輸入鍵盤上的任何鍵時,標籤將提供有關鍵的一些資訊。

在下面的程式中,我們建立了一個類 JavaKeycodeExample,它擴充套件了 Frame 類並實現了 KeyListener 介面。Frame 類為我們提供了一個放置輸入欄位和標籤的視窗,而在 KeyListener 介面的幫助下,我們可以覆蓋它的三個方法來幫助我們識別關鍵事件。

JavaKeycodeExample 類中,我們建立了兩個標籤 label1label2,以及一個接受輸入的文字欄位 textField。我們初始化並設定 AWT 元件的大小以將它們新增到 Frame

我們使用 addKeyListener()KeyListener 新增到 textField。我們實現了 KeyListener 介面,因此我們必須重寫它的三個方法,即記錄按下的鍵的 keyPressed(),識別鍵入的鍵的 keyTyped(),以及呼叫最後一個方法 keyReleased() 當按下的鍵被釋放時。

對於這個例子,我們主要使用 keyPressed() 方法,只要在輸入欄位中按下一個鍵,它就會接收一個 KeyEvent 物件 e。要按下鍵碼,我們使用 KeyEvent 物件呼叫 getKeyCode() 方法並將結果與​​字串連線。

我們還使用方法 KeyEvent.getKeyText() 獲取表示鍵程式碼的文字並傳遞 e.getKeyCode()。最後,我們將兩個字串都設定為標籤 label1label2

在輸出中,我們可以觀察到我們在文字欄位中按下了鍵盤上的鍵 k;第一個標籤列印鍵程式碼,而第二個標籤顯示鍵文字。

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 開始並執行到 50for 迴圈獲取關鍵程式碼和描述它的關鍵文字。

在迴圈中,迴圈的每個值都可能是一個鍵碼,我們使用函式 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
Author: 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