修飾子
public class MouseEvent
父類別
java.awt.event.InputEvent
實作介面
Serializable
建構子
public MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger, int button)
public MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger)
public MouseEvent(Component source, int id, long when, int modifiers, int x, int y, int xAbs, int yAbs, int clickCount, boolean popupTrigger, int button)
常用屬性
名稱 敘述 BUTTON1 滑鼠左鍵 BUTTON2 滑鼠中鍵或滾輪 BUTTON3 滑鼠右鍵
常用方法
名稱 敘述 getButton() 取得按鍵常數值 getClickCount() 取得連續點擊次數 getLocationOnScreen() 取得滑鼠游標在螢幕上的座標 getPoint() 取得滑鼠游標在視窗中的座標 getX() 取得滑鼠游標在視窗中的 x 座標 getXOnScreen() 取得滑鼠游標在螢幕上的 x 座標 getY() 取得滑鼠游標在視窗中的 y 座標 getYOnScreen() 取得滑鼠游標在螢幕上的 y 座標
舉例如下
import java.awt.*; import java.awt.event.*; public class MouseEventDemo extends MouseAdapter { Frame frame; Panel panel; Label text; public static void main(String[] args) { new MouseEventDemo(); } public MouseEventDemo() { frame = new Frame("AWTDemo"); frame.addWindowListener(new AdapterDemo()); frame.setSize(600, 400); panel = new Panel(); panel.addMouseListener(this); text = new Label("something happened.."); panel.add(text); frame.add(panel, BorderLayout.CENTER); frame.setVisible(true); } public void mousePressed(MouseEvent e) { text.setText("x: " + e.getX() + ", y: " + e.getY()); System.out.print("screen x: " + e.getXOnScreen()); System.out.print(", y: " + e.getYOnScreen() + "\n"); if (e.getButton() == MouseEvent.BUTTON1) { System.out.println("left button"); } if (e.getButton() == MouseEvent.BUTTON2) { System.out.println("middle button"); } if (e.getButton() == MouseEvent.BUTTON3) { System.out.println("right button"); } System.out.println("mouse position: " + e.getPoint()); System.out.println("mouse screen position: " + e.getLocationOnScreen()); System.out.println("mouse clicks: " + e.getClickCount()); } } class AdapterDemo extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:MouseEventDemo.java 功能:示範 Java 程式 作者:張凱慶 時間:西元 2012 年 3 月 */
此例的 MouseEventDemo 直接繼承 MouseAdapter 類別
public class MouseEventDemo extends MouseAdapter {
由於 MouseAdapter 已經實作 MouseListener 介面,因此這裡我們直接改寫 mousePressed() 方法,當滑鼠按鍵被按下就會執行 mousePressed() 。首先呼叫 MouseEvent 的 getX() 與 getY() 取得在視窗中點擊的座標,並且顯示在視窗的 Label 中,然後在命令列呼叫 getXOnScreen() 與 getYOnScreen() 印出在螢幕中點擊的座標,接著呼叫 getButton() 判斷按下哪一個鍵,最後呼叫並印出 getPoint() 、 getLocationOnScreen() 與 e.getClickCount()
public void mousePressed(MouseEvent e) { text.setText("x: " + e.getX() + ", y: " + e.getY()); System.out.print("screen x: " + e.getXOnScreen()); System.out.print(", y: " + e.getYOnScreen() + "\n"); if (e.getButton() == MouseEvent.BUTTON1) { System.out.println("left button"); } if (e.getButton() == MouseEvent.BUTTON2) { System.out.println("middle button"); } if (e.getButton() == MouseEvent.BUTTON3) { System.out.println("right button"); } System.out.println("mouse position: " + e.getPoint()); System.out.println("mouse screen position: " + e.getLocationOnScreen()); System.out.println("mouse clicks: " + e.getClickCount()); }
編譯後執行,結果如下
中英文術語對照 | |
---|---|
類別 | class |
介面 | interface |
參數 | parameter |
物件 | object |
您可以繼續參考
事件處理
相關目錄
Java API 分類導覽
Java 教材
首頁
參考資料
http://docs.oracle.com/javase/6/docs/api/java/awt/event/MouseEvent.html
沒有留言:
張貼留言