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

目录
  • 关于MouseWheelListener的鼠标滚轮事件
    • 一、MouseWheelListener接口
    • 二、public int getWheelRotation()
  • Java获取鼠标滚轮按下事件
    • 判定滚轮按下,原始的方法如下
    • 当然可以利用SwingUtilities

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

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

(0)

相关推荐

  • JAVA GUI基础与MouseListener用法

    目录 使用MouseListener类作为JFrame的监听 点击窗口右上角关闭,四种关闭方式 使用MouseAdapter类作为JFrame的监听 MouseAdapter与MouseListener类中实际都封装了五个鼠标事件 所谓监听器,它一定是与某个GUI部件绑定的,例如我声明了一个JFrame f,我想对他进行鼠标监听,可以使用f.addMouseListener(this); 使用MouseListener类作为JFrame的监听 import java.awt.event.*; i

  • java抓取鼠标事件和鼠标滚轮事件示例

    java抓取鼠标事件和滚轮事件 复制代码 代码如下: package demo; import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.event.MouseWheelEvent;import java.awt.event.MouseWheelListener; import javax.swing.JButton;import javax.swing.JFrame;import

  • Java监听器ActionListener与MouseListener的执行顺序说明

    目录 基本概念 开发环境 源代码 运行结果 小结一下 鼠标监听器和动作监听器区别和联系 1.英文名:MouseListener和ActionListener 2.作用 3.区别 基本概念 监听器(Listener):监听器用于监听web应用中某些对象.信息的创建.销毁.增加,修改,删除等动作的发生,然后作出相应的响应处理.当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法.常用于统计在线人数和在线用户,系统加载时进行信息初始化,统计网站的访问量等等. ActionListener:

  • java中addMouseListener()方法的使用

    目录 java addMouseListener()方法使用 其包含五个方法 另外还有几个重要的方法 java鼠标事件监听MOUSEADAPTER 方法摘要 java addMouseListener()方法使用 用于接收组件上"感兴趣"的鼠标事件(按下.释放.单击.进入或离开)的侦听器接口.(要跟踪鼠标移动和鼠标拖动,请使用 MouseMotionListener.) 使用组件的 addMouseListener 方法将从该类所创建的侦听器对象向该组件注册.当按下.释放或单击(按下并

  • 详解Java图形化编程中的鼠标事件设计

    鼠标事件的事件源往往与容器相关,当鼠标进入容器.离开容器,或者在容器中单击鼠标.拖动鼠标时都会发生鼠标事件.java语言为处理鼠标事件提供两个接口:MouseListener,MouseMotionListener接口. MouseListener接口 MouseListener接口能处理5种鼠标事件:按下鼠标,释放鼠标,点击鼠标.鼠标进入.鼠标退出.相应的方法有: (1) getX():鼠标的X坐标 (2) getY():鼠标的Y坐标 (3) getModifiers():获取鼠标的左键或右键

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

    目录 关于MouseWheelListener的鼠标滚轮事件 一.MouseWheelListener接口 二.public int getWheelRotation() Java获取鼠标滚轮按下事件 判定滚轮按下,原始的方法如下 当然可以利用SwingUtilities 关于MouseWheelListener的鼠标滚轮事件 Java中JPanel面板中对鼠标滚轮事件的处理. 一.MouseWheelListener接口 MouseWheelListener接口中只有一个void mouseW

  • js中鼠标滚轮事件详解(firefox多浏览器)

    附加事件 其中经我测试,IE/Opera属于同一类型,使用attachEvent即可添加滚轮事件. 复制代码 代码如下: /*IE注册事件*/ if(document.attachEvent){ document.attachEvent('onmousewheel',scrollFunc); } Firefox使用addEventListener添加滚轮事件 复制代码 代码如下: /*Firefox注册事件*/ if(document.addEventListener){ document.ad

  • java 中 String format 和Math类实例详解

    java 中 String format 和Math类实例详解 java字符串格式化输出 @Test public void test() { // TODO Auto-generated method stub //可用printf(); System.out.println(String.format("I am %s", "jj")); //%s字符串 System.out.println(String.format("首字母是 %c",

  • java 中Excel转shape file的实例详解

    java  中Excel转shape file的实例详解 概述: 本文讲述如何结合geotools和POI实现Excel到shp的转换,再结合前文shp到geojson数据的转换,即可实现用户上传excel数据并在web端的展示功能. 截图: 原始Excel文件 运行耗时 运行结果 代码: package com.lzugis.geotools; import com.lzugis.CommonMethod; import com.vividsolutions.jts.geom.Coordina

  • 基于java中的PO VO DAO BO POJO(详解)

    一.PO:persistant object 持久对象,可以看成是与数据库中的表相映射的ava对象. 最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合PO中应该不包含任何对数据库的操作. 二.VO:value object值对象.通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已.但应是抽象出的业务对象可以和表对应也可以不这根据业务的需要 三.DAO:data access object 数据访问对象,此对象用于访问数据库.通常和PO结合使用,DAO中包含了各种

  • JAVA 中解密RSA算法JS加密实例详解

    JAVA 中解密RSA算法JS加密实例详解 有这样一个需求,前端登录的用户名密码,密码必需加密,但不可使用MD5,因为后台要检测密码的复杂度,那么在保证安全的前提下将密码传到后台呢,答案就是使用RSA非对称加密算法解决 . java代码 需要依赖 commons-codec 包 RSACoder.Java import org.apache.commons.codec.binary.Base64; import javax.crypto.Cipher; import java.security.

  • Java 中组合模型之对象结构模式的详解

    Java 中组合模型之对象结构模式的详解 一.意图 将对象组合成树形结构以表示"部分-整体"的层次结构.Composite使得用户对单个对象和组合对象的使用具有一致性. 二.适用性 你想表示对象的部分-整体层次结构 你希望用户忽略组合对象与单个对象的不同,用户将统一使用组合结构中的所有对象. 三.结构 四.代码 public abstract class Component { protected String name; //节点名 public Component(String n

  • Java中对List集合的常用操作详解

    目录: 1.list中添加,获取,删除元素: 2.list中是否包含某个元素: 3.list中根据索引将元素数值改变(替换): 4.list中查看(判断)元素的索引: 5.根据元素索引位置进行的判断: 6.利用list中索引位置重新生成一个新的list(截取集合): 7.对比两个list中的所有元素: 8.判断list是否为空: 9.返回Iterator集合对象: 10.将集合转换为字符串: 11.将集合转换为数组: 12.集合类型转换: 备注:内容中代码具有关联性. 1.list中添加,获取,

  • Java中成员方法与成员变量访问权限详解

    记得在一次面试的笔试题中,有的面试官会要求写出具体的像pullic这些访问限定符的作用域.其实,平常我都没去系统的考虑这些访问限定符的作用域,特别是包内包外的情况,OK,笔试不行了. 这是java基本的知识,也是公司看重的,那没办法啦,我的脑袋记不住东西,那我只能把这些东西写下来方便自己温故知新,不废话了,贴代码了. 代码如下: package com.jaovo; /** *_1_ 成员变量访问权限的求证 * public private protected default(默认的权限) *自

  • Java中map遍历方式的选择问题详解

    1. 阐述 对于Java中Map的遍历方式,很多文章都推荐使用entrySet,认为其比keySet的效率高很多.理由是:entrySet方法一次拿到所有key和value的集合:而keySet拿到的只是key的集合,针对每个key,都要去Map中额外查找一次value,从而降低了总体效率.那么实际情况如何呢? 为了解遍历性能的真实差距,包括在遍历key+value.遍历key.遍历value等不同场景下的差异,我试着进行了一些对比测试. 2. 对比测试 一开始只进行了简单的测试,但结果却表明k

随机推荐