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

Java 經典範例 074:Applet 滑鼠事件監聽與座標繪製

     編輯:Java 程式設計入門

範例目標

示範在 Applet 中註冊 `MouseListener` (透過 `MouseAdapter`),捕捉滑鼠點擊座標,並即時繪製十字準線與座標文字。

核心代碼

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

public class MouseAd extends Applet {
    private int x = 0, y = 0;

    @Override
    public void init() {
        // 使用匿名內部類簡化代碼 (JDK 1.1+)
        addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent e) {
                x = e.getX();
                y = e.getY();
                repaint(); // 觸發重繪
            }
        });
    }

    @Override
    public void paint(Graphics g) {
        Dimension d = getSize();
        g.drawString("x=" + x + " y=" + y, 10, 20);
        g.drawLine(x, 0, x, d.height); // 垂直線
        g.drawLine(0, y, d.width, y);  // 水平線
    }
}

關鍵技術點

項目說明
事件委派模型`addMouseListener` 註冊監聽器,AWT 事件佇列分派 `MouseEvent`
MouseAdapter空實現 `MouseListener` 介面,僅覆寫關心的 `mousePressed`,避免實作 5 個方法
座標系`e.getX()/getY()` 相對於 Applet 左上角 (0,0)
主動重繪`repaint()` 排程 `paint()`,非立即執行;`update()` 預設清屏再呼叫 `paint()`

HTML 測試頁

<applet code="MouseAd.class" width="300" height="200">
  您的瀏覽器不支援 Java Applet。
</applet>

遷移至 Swing/JavaFX 參考

// Swing JFrame 版
JFrame frame = new JFrame("Mouse Demo");
frame.addMouseListener(new MouseAdapter() {
    public void mousePressed(MouseEvent e) {
        System.out.println("Clicked at: " + e.getPoint());
    }
});
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);

核心 API (`MouseEvent`、`MouseListener`、`MouseAdapter`) 完全相容,僅容器從 `Applet` 換為 `JComponent`/`Node`。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved