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

Java Applet 事件處理:滑鼠與鍵盤響應

     編輯:Java 程式設計入門

事件處理模型 (JDK 1.0/1.1 舊式)

早期 Applet 直接覆寫 Event 處理方法,現代建議使用 java.awt.event 監聽器介面,但本文示範傳統方式以利理解基礎概念。

滑鼠事件

public class Mouse extends Applet {
  String text = "";
  public void paint(Graphics g) { g.drawString(text, 20, 20); }

  public boolean mouseDown(Event evt, int x, int y) {
    text = "Mouse Down"; repaint(); return true;
  }
  public boolean mouseUp(Event evt, int x, int y) {
    text = ""; repaint(); return true;
  }
  // 其他:mouseDrag, mouseMove, mouseEnter, mouseExit
}
  • mouseDown:按下滑鼠鍵 (不區分左右鍵)。
  • mouseUp:釋放滑鼠鍵。
  • 回傳 true 表示事件已處理,不再向上傳遞。

鍵盤事件

public class Keyboard extends Applet {
  String text = "";
  public void paint(Graphics g) { g.drawString(text, 20, 20); }

  public boolean keyDown(Event evt, int key) {
    text = "Key Down: " + (char)key; repaint(); return true;
  }
  public boolean keyUp(Event evt, int key) {
    text = ""; repaint(); return true;
  }
}
  • keyDown:按下鍵盤,key 參數為 Unicode 值。
  • keyUp:釋放鍵盤。

現代事件處理建議 (JDK 1.1+)

  • 實作 MouseListener, MouseMotionListener, KeyListener 介面。
  • 於 init() 註冊:addMouseListener(this), addKeyListener(this)。
  • 事件物件 MouseEvent, KeyEvent 提供豐富資訊 (點擊次數、修飾鍵、鍵盤碼等)。
  • 分離事件邏輯與繪圖邏輯,程式結構更清晰。

完整現代化範例

public class ModernEventApplet extends Applet implements MouseListener, KeyListener {
  String msg = "";
  public void init() {
    addMouseListener(this); addKeyListener(this);
  }
  public void paint(Graphics g) { g.drawString(msg, 20, 20); }

  public void mousePressed(MouseEvent e) { msg = "Mouse Pressed @ " + e.getX() + "," + e.getY(); repaint(); }
  public void mouseReleased(MouseEvent e) { msg = ""; repaint(); }
  // 其他 mouseClicked, mouseEntered, mouseExited 留空

  public void keyPressed(KeyEvent e) { msg = "Key: " + KeyEvent.getKeyText(e.getKeyCode()); repaint(); }
  public void keyReleased(KeyEvent e) { msg = ""; repaint(); }
  public void keyTyped(KeyEvent e) {} // 可處理字元輸入
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved