欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java中关于MouseWheelListener的鼠标滚轮事件详解

程序员文章站 2022-06-26 17:29:46
目录关于mousewheellistener的鼠标滚轮事件一、mousewheellistener接口二、public int getwheelrotation()java获取鼠标滚轮按下事件判定滚轮...

关于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");
    }
   }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。