Java中關於MouseWheelListener的鼠標滾輪事件詳解

關於MouseWheelListener的鼠標滾輪事件

Java中JPanel面板中對鼠標滾輪事件的處理。

一、MouseWheelListener接口

MouseWheelListener接口中隻有一個void mouseWheelMoved(MouseWheelEvent e)方法,此方法是在鼠標滾輪滾動的時候調用。所以要重寫這個方法。

我們使用MouseWheelEvent此類中的public int getWheelRotation()方法。

二、public int getWheelRotation()

如果鼠標滾輪向上/遠離用戶旋轉,則為負值,如果鼠標滾輪朝向用戶向下旋轉,則為正值

代碼演示:

  • 主要實現對JPanel容器,和JFrame窗口的放大和縮小。
  • 這裡采用的方法就是按鈕滾輪的方式
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class MouseWheelListener01 extends JFrame implements MouseWheelListener{
	public static void main(String[] args) {
		new MouseWheelListener01();
	}
	int h = 300;
	int w = 300;
	JPanel j = new JPanel();
	// 構造器
	MouseWheelListener01(){
    super("放縮滾輪");
	this.add(j);
	this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	this.setSize(h,w);
	this.setVisible(true);
    this.addMouseWheelListener(this);  // 添加鼠標滾輪事件
	}
    //利用滾輪事件將窗口放大和縮小
    public void mouseWheelMoved(MouseWheelEvent e) {
	// 如果鼠標滾輪向上旋轉或遠離用戶,則為負值,如果鼠標滾輪向下旋轉或朝向用戶旋轉,則為正值
    if(e.getWheelRotation()==1){
		h = h + 15;
		w = w + 15;
        this.setSize(h,w);
        this.validate();
        System.out.println("滑輪向前。。。。");
   }
    if(e.getWheelRotation()==-1){
		h = h - 15;
		w = w -15;
    this.setSize(h,w);
    this.validate();
    System.out.println("滑輪向後....");
  }
 }
}

Java獲取鼠標滾輪按下事件

滾輪按下的事件和鼠標點擊事件都在MouseListener裡面

判定滾輪按下,原始的方法如下

   public void mouseClicked(MouseEvent e) {
    int modifiers = e.getModifiers();
    if ((modifiers & InputEvent.BUTTON2_MASK) == InputEvent.BUTTON2_MASK){
     System.out.println("middle button click");
    }
   }

當然可以利用SwingUtilities

   public void mouseClicked(MouseEvent e) {
    if (SwingUtilities.isMiddleMouseButton(e)){
     System.out.println("middle button click");
    }
   }

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: