在 Java 中使用鍵碼
今天我們將研究代表鍵盤上按鍵的按鍵程式碼。鍵碼是分配給 KeyEvent
物件的整數程式碼。
在 Java 中使用 KeyListener
來監聽按鍵程式碼
在此示例中,我們建立一個框架並在其底部新增一個帶有兩個標籤的輸入欄位。當我們在該欄位中輸入鍵盤上的任何鍵時,標籤將提供有關鍵的一些資訊。
在下面的程式中,我們建立了一個類 JavaKeycodeExample
,它擴充套件了 Frame
類並實現了 KeyListener
介面。Frame
類為我們提供了一個放置輸入欄位和標籤的視窗,而在 KeyListener
介面的幫助下,我們可以覆蓋它的三個方法來幫助我們識別關鍵事件。
在 JavaKeycodeExample
類中,我們建立了兩個標籤 label1
和 label2
,以及一個接受輸入的文字欄位 textField
。我們初始化並設定 AWT 元件的大小以將它們新增到 Frame
。
我們使用 addKeyListener()
將 KeyListener
新增到 textField
。我們實現了 KeyListener
介面,因此我們必須重寫它的三個方法,即記錄按下的鍵的 keyPressed()
,識別鍵入的鍵的 keyTyped()
,以及呼叫最後一個方法 keyReleased()
當按下的鍵被釋放時。
對於這個例子,我們主要使用 keyPressed()
方法,只要在輸入欄位中按下一個鍵,它就會接收一個 KeyEvent
物件 e
。要按下鍵碼,我們使用 KeyEvent
物件呼叫 getKeyCode()
方法並將結果與字串連線。
我們還使用方法 KeyEvent.getKeyText()
獲取表示鍵程式碼的文字並傳遞 e.getKeyCode()
。最後,我們將兩個字串都設定為標籤 label1
和 label2
。
在輸出中,我們可以觀察到我們在文字欄位中按下了鍵盤上的鍵 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 中使用 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