Java中关于MouseWheelListener的鼠标滚轮事件详解
作者:智慧的猪- 时间:2023-10-19 02:02:54
关于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");
}
}
来源:https://blog.csdn.net/weixin_54963748/article/details/120326405
标签:Java,MouseWheelListener,鼠标,滚轮
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
C#中SQL参数传入空值报错解决方案
2023-12-14 14:28:59
C# javascript 读写Cookie的方法
2023-03-19 08:03:16
c# 重载WndProc,实现重写“最小化”的实现方法
2022-10-22 10:16:13
SpringBoot 使用log4j2的配置过程
2021-11-09 04:15:25
Java继承的问题引导和测试代码
2023-03-13 18:50:34
![](https://img.aspxhome.com/file/2023/8/96078_0s.jpg)
Android SQLite数据库操作代码类分享
2022-03-03 06:43:25
Java中List使用stream流转成map的几种方式详解
2022-07-31 21:46:12
详解Java中的线程池
2023-11-10 16:33:27
![](https://img.aspxhome.com/file/2023/9/59369_0s.png)
Spring自定义注解配置简单日志示例
2023-01-25 09:31:08
Hook实现Android 微信、陌陌 、探探位置模拟(附源码下载)
2022-11-14 14:44:43
![](https://img.aspxhome.com/file/2023/1/138941_0s.png)
spring boot配置多个请求服务代理的完整步骤
2023-03-30 10:30:49
![](https://img.aspxhome.com/file/2023/0/110890_0s.png)
Android自定义View实现波浪动画
2022-05-27 23:04:46
![](https://img.aspxhome.com/file/2023/8/137248_0s.gif)
Java 网络编程总结
2023-11-10 22:19:29
![](https://img.aspxhome.com/file/2023/1/59071_0s.png)
JAVA读取属性文件的几种方法总结
2023-10-21 04:36:40
Java堆内存又溢出了!教你一招必杀技(推荐)
2022-09-22 06:32:55
![](https://img.aspxhome.com/file/2023/0/125570_0s.png)
Android viewpager 3D画廊的实现方法
2021-05-28 21:19:27
Java日常练习题,每天进步一点点(41)
2023-05-18 18:10:02
java实现多线程之定时器任务
2021-07-10 08:56:14
Android中通过RxJava进行响应式程序设计的入门指南
2023-06-27 08:17:46
C#获取Word文档中所有表格的实现代码分享
2023-05-12 10:01:46