Java API 分類導覽 - java.awt.event.MouseEvent BUTTON2

MouseEvent 類別 (class) 的 BUTTON2 屬性 (field) 為表示滑鼠中鍵的值。



修飾子與參數
public static final int BUTTON2


MouseEvent.BUTTON2 通常與 getButton() 方法 (method) 的回傳值 (return value) 比較,若相等,表示使用者點擊滑鼠中鍵或滾輪。


舉例如下
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
方法method
屬性field
回傳值return value


您可以繼續參考
事件處理


相關目錄
Java API 分類導覽
Java 教材
首頁


參考資料
http://docs.oracle.com/javase/6/docs/api/java/awt/event/MouseEvent.html

沒有留言: