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

 更新时间:2021年12月04日 14:49:09   作者:智慧的猪-  
这篇文章主要介绍了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");
    }
   }

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

相关文章

  • java实现http请求工具类示例

    java实现http请求工具类示例

    这篇文章主要介绍了java实现http请求工具类示例,需要的朋友可以参考下
    2014-05-05
  • SSM Mapper文件查询出返回数据查不到个别字段的问题

    SSM Mapper文件查询出返回数据查不到个别字段的问题

    这篇文章主要介绍了SSM Mapper文件查询出返回数据查不到个别字段的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • SpringLDAP目录服务之LdapTemplate与LDAP操作方式

    SpringLDAP目录服务之LdapTemplate与LDAP操作方式

    本文将深入探讨Spring LDAP的核心概念、LdapTemplate的使用方法以及如何执行常见的LDAP操作,帮助开发者有效地将LDAP集成到Spring应用中,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • Java中的static--静态变量你了解吗

    Java中的static--静态变量你了解吗

    Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问,.下面我们来详细了解一下吧
    2021-09-09
  • Java数据结构之顺序表的实现

    Java数据结构之顺序表的实现

    线性表(linear list)是n个具有相同特性的数据元素的有限序列。顺序表是常见的线性表之一,本文将详细讲讲顺序表的原理与实现,需要的可以参考一下
    2022-08-08
  • Spring AOP如何实现注解式的Mybatis多数据源切换详解

    Spring AOP如何实现注解式的Mybatis多数据源切换详解

    这篇文章主要给大家介绍了关于Spring AOP如何实现注解式的Mybatis多数据源切换的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Java方法调用解析静态分派动态分派执行过程

    Java方法调用解析静态分派动态分派执行过程

    这篇文章主要为大家介绍了Java方法调用解析静态分派动态分派执行过程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Java线程组与未处理异常实例分析

    Java线程组与未处理异常实例分析

    这篇文章主要介绍了Java线程组与未处理异常,结合实例形式分析了java线程组处理异常的相关技巧与操作注意事项,需要的朋友可以参考下
    2019-09-09
  • Java中双重检查锁(double checked locking)的正确实现

    Java中双重检查锁(double checked locking)的正确实现

    双重检查锁(Double-Check Locking),顾名思义,通过两次检查,并基于加锁机制,实现某个功能,下面这篇文章主要给大家介绍了关于Java中双重检查锁(double checked locking)的相关资料,需要的朋友可以参考下
    2021-09-09
  • Java java.lang.ExceptionInInitializerError 错误如何解决

    Java java.lang.ExceptionInInitializerError 错误如何解决

    这篇文章主要介绍了 Java java.lang.ExceptionInInitializerError 错误如何解决的相关资料,需要的朋友可以参考下
    2017-06-06

最新评论