Java API 分類導覽 - java.awt.event.MouseWheelEvent

MouseWheelEvent 類別 (class) 主要處理滑鼠相關事件,此為實作 MouseWheelListener 介面 (interface) 後, mouseWheelMoved 的參數 (parameter) e 即為 MouseWheelEvent 物件 (object) 。



修飾子
public class MouseWheelEvent


父類別
java.awt.event.MouseEvent


實作介面
Serializable


建構子
public MouseWheelEvent(Component source, int id, long when, int modifiers, int x, int y, int clickCount, boolean popupTrigger, int scrollType, int scrollAmount, int wheelRotation)
public MouseWheelEvent(Component source, int id, long when, int modifiers, int x, int y, int xAbs, int yAbs, int clickCount, boolean popupTrigger, int scrollType, int scrollAmount, int wheelRotation)


常用屬性
名稱敘述
WHEEL_BLOCK_SCROLL表示滾輪以跳躍式滾動的常數
WHEEL_UNIT_SCROLL表示滾輪以單位式滾動的常數


常用方法
名稱敘述
getScrollAmount()回傳滾輪每次滾動的單位數
getScrollType()回傳滾輪滾動的種類
getUnitsToScroll()回傳滾輪每次滾動的單位總量
getWheelRotation()回傳滾輪每次滾動的點擊數


舉例如下
import java.awt.*;
import java.awt.event.*;
 
public class MouseWheelEventDemo extends MouseAdapter {
    Frame frame;
    Panel panel;
    Label text;
    
    public static void main(String[] args) {
        new MouseWheelEventDemo();
    }
     
    public MouseWheelEventDemo() {
        frame = new Frame("AWTDemo");
        frame.addWindowListener(new AdapterDemo());
        frame.setSize(600, 400);
        
        panel = new Panel();
        panel.addMouseWheelListener(this);
        
        text = new Label("something happened..");
        
        panel.add(text);
        frame.add(panel, BorderLayout.CENTER);
        frame.setVisible(true);
    }
    
    public void mouseWheelMoved(MouseWheelEvent e) {
        if (e.getScrollType() == MouseWheelEvent.WHEEL_BLOCK_SCROLL) {
            text.setText("WHEEL_BLOCK_SCROLL");
        }
        if (e.getScrollType() == MouseWheelEvent.WHEEL_UNIT_SCROLL) {
            text.setText("WHEEL_UNIT_SCROLL");
        }
        
        System.out.println("getScrollAmount: " + e.getScrollAmount());
        System.out.println("getUnitsToScroll: " + e.getUnitsToScroll());
        System.out.println("getWheelRotation: " + e.getWheelRotation());
    }
}
 
class AdapterDemo extends WindowAdapter {
    public void windowClosing(WindowEvent e) {
        System.exit(0);
    }
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:MouseWheelEventDemo.java
    功能:示範 Java 程式 
    作者:張凱慶
    時間:西元 2012 年 3 月 */


此例的 MouseWheelEventDemo 直接繼承 MouseAdapter 類別
public class MouseWheelEventDemo extends MouseAdapter {


由於 MouseAdapter 已經實作 MouseWheelEvent 介面,因此這裡我們直接改寫 mouseWheelMoved() 方法,先呼叫 getScrollType() 判斷滾輪是以跳躍式滾動還是單位式滾動,接著呼叫 getScrollAmount() 、 getUnitsToScroll() 、 getWheelRotation() 印出每次滾動的單位數、單位總量與點擊數
public void mouseWheelMoved(MouseWheelEvent e) {
    if (e.getScrollType() == MouseWheelEvent.WHEEL_BLOCK_SCROLL) {
        text.setText("WHEEL_BLOCK_SCROLL");
    }
    if (e.getScrollType() == MouseWheelEvent.WHEEL_UNIT_SCROLL) {
        text.setText("WHEEL_UNIT_SCROLL");
    }
        
    System.out.println("getScrollAmount: " + e.getScrollAmount());
    System.out.println("getUnitsToScroll: " + e.getUnitsToScroll());
    System.out.println("getWheelRotation: " + e.getWheelRotation());
}


編譯後執行,結果如下



中英文術語對照
類別class
介面interface
參數parameter
物件object


您可以繼續參考
事件處理


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


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

沒有留言: