首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Java Applet 即時顯示鍵盤按鍵 ASCII 碼

     編輯:Java 程式設計入門

程式碼功能

此 Applet 示範實作 KeyListener 介面,即時捕獲鍵盤輸入並顯示對應的 ASCII/Unicode 數值。適用於鍵碼對照測試、輸入法開發除錯等場景。

完整原始碼(整理版)

import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class KeyValueApplet extends Applet implements KeyListener {
    TextField inputField = new TextField(10);
    Label asciiLabel = new Label("鍵盤對應 ASCII 碼");

    public void init() {
        setLayout(new FlowLayout());
        add(inputField);
        add(asciiLabel);
        inputField.addKeyListener(this);
    }

    public void keyPressed(KeyEvent e) {
        char ch = e.getKeyChar();
        int code = (int) ch;
        asciiLabel.setText(String.valueOf(code));
        inputField.setText("");
        inputField.requestFocus();
    }

    public void keyTyped(KeyEvent e) {
        // 可在此處理 Enter 等特殊鍵
        // 原始碼註解區塊示範 Enter(10) 觸發特定邏輯
    }

    public void keyReleased(KeyEvent e) { /* 不處理 */ }
}

關鍵技術點

KeyListener 三個方法

方法觸發時機典型用途
keyPressed按鍵按下瞬間遊戲控制、熱鍵偵測、非字元鍵 (F1、Ctrl 等)
keyReleased按鍵釋放瞬間按鍵組合判斷、長按偵測
keyTyped產生字元時文字輸入處理、字元過濾、已包含修飾鍵效果

注意:keyTyped 不會為非字元鍵(功能鍵、修飾鍵、方向鍵)觸發。

取得按鍵資訊

int keyCode = e.getKeyCode();     // 虛擬鍵碼 (VK_ENTER, VK_A, VK_SHIFT...)
char keyChar = e.getKeyChar();    // 實際字元 (含 Shift 等修飾鍵效果)
int modifiers = e.getModifiersEx(); // 修飾鍵狀態 (SHIFT_DOWN, CTRL_DOWN...)

在 HTML 中嵌入測試

<html>
<body>
<applet code="KeyValueApplet.class" width="300" height="100">
    <param name="permissions" value="sandbox">
</applet>
<!-- 或使用 appletviewer 測試:
     appletviewer KeyValueApplet.java -->
</body>
</html>

現代化替代方案

Applet 技術已淘汰,建議改用:

  • JavaFX:TextField.setOnKeyPressed()、KeyEvent.getCode()
  • Swing:JTextField.addKeyListener() (同 AWT API)
  • Web 前端:input.addEventListener('keydown', e => console.log(e.key, e.code))

常見問題

問題原因解決
無法獲得焦點Applet 初始化未請求焦點inputField.requestFocusInWindow() 或滑鼠點擊
中文輸入法干擾組合字過程觸發多次事件使用 keyTyped 只處理最終字元、或監聽 InputMethodEvent
數字鍵盤編碼不同NumLock 狀態影響 keyCode優先使用 getKeyChar() 取得字元
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved