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

[JAVA100例] 第75例:Applet 鍵盤事件檢測與字符顯示

     編輯:Java 相關知識

本例演示在 Applet 中添加鍵盤監聽器,捕獲按鍵事件並將輸入字符實時繪製在 Applet 畫布上。

核心代碼

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

public class KeyAd extends Applet {
  String text = "";
  int width, height;

  public void init() {
    addKeyListener(new KeyAdapter() {
      public void keyPressed(KeyEvent e) {
        this_keyPressed(e);
      }
    });
  }

  void this_keyPressed(KeyEvent e) {
    String s = "";
    text = s += e.getKeyChar();  // 獲取按鍵字符
    System.out.println("text=" + text);
    width = size().width;
    height = size().height;
    repaint();  // 觸發重繪
  }

  public void paint(Graphics g) {
    setFont(new Font("Dialog", Font.BOLD, 80));
    g.drawString(text, height/2, width/2);  // 注意:x/y 參數似乎反了
  }
}

關鍵技術點

  • 鍵盤監聽:addKeyListener(new KeyAdapter() {...}) 匿名內部類處理按鍵事件
  • 字符獲取:e.getKeyChar() 返回按鍵對應的 Unicode 字符
  • 繪製更新:修改狀態後調用 repaint() 觸發 paint() 重繪
  • 焦點問題:Applet 需獲取鍵盤焦點才能接收事件,可能需滑鼠點擊 Applet 區域

代碼中的小問題

g.drawString(text, height/2, width/2) 參數順序為 (x, y),但傳入的是 (height/2, width/2),可能導致顯示位置異常。正確應為 width/2, height/2 或根據實際佈局調整。

現代 Web 替代方案

  • HTML <input> / <textarea> + JavaScript 事件:keydown、keypress、keyup
  • Canvas 繪製文字:ctx.fillText() 實時渲染輸入字符
  • ContentEditable div:原生富文本編輯體驗
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved