Java中關(guān)于MouseWheelListener的鼠標(biāo)滾輪事件詳解
關(guān)于MouseWheelListener的鼠標(biāo)滾輪事件
Java中JPanel面板中對(duì)鼠標(biāo)滾輪事件的處理。
一、MouseWheelListener接口
MouseWheelListener接口中只有一個(gè)void mouseWheelMoved(MouseWheelEvent e)方法,此方法是在鼠標(biāo)滾輪滾動(dòng)的時(shí)候調(diào)用。所以要重寫這個(gè)方法。
我們使用MouseWheelEvent此類中的public int getWheelRotation()方法。
二、public int getWheelRotation()
如果鼠標(biāo)滾輪向上/遠(yuǎn)離用戶旋轉(zhuǎn),則為負(fù)值,如果鼠標(biāo)滾輪朝向用戶向下旋轉(zhuǎn),則為正值
代碼演示:
- 主要實(shí)現(xiàn)對(duì)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(); // 構(gòu)造器 MouseWheelListener01(){ super("放縮滾輪"); this.add(j); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(h,w); this.setVisible(true); this.addMouseWheelListener(this); // 添加鼠標(biāo)滾輪事件 } //利用滾輪事件將窗口放大和縮小 public void mouseWheelMoved(MouseWheelEvent e) { // 如果鼠標(biāo)滾輪向上旋轉(zhuǎn)或遠(yuǎn)離用戶,則為負(fù)值,如果鼠標(biāo)滾輪向下旋轉(zhuǎn)或朝向用戶旋轉(zhuǎn),則為正值 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獲取鼠標(biāo)滾輪按下事件
滾輪按下的事件和鼠標(biāo)點(diǎn)擊事件都在MouseListener里面
判定滾輪按下,原始的方法如下
public void mouseClicked(MouseEvent e) { int modifiers = e.getModifiers(); if ((modifiers & InputEvent.BUTTON2_MASK) == InputEvent.BUTTON2_MASK){ System.out.println("middle button click"); } }
當(dāng)然可以利用SwingUtilities
public void mouseClicked(MouseEvent e) { if (SwingUtilities.isMiddleMouseButton(e)){ System.out.println("middle button click"); } }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于intellij idea打開就閃退或關(guān)閉詳細(xì)解決辦法
這篇文章主要介紹了關(guān)于intellij idea打開就閃退或關(guān)閉詳細(xì)解決辦法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03解決SpringBoot ClassPathResource的大坑(FileNotFoundException)
這篇文章主要介紹了解決SpringBoot ClassPathResource的大坑(FileNotFoundException),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06springboot如何使用redis的incr創(chuàng)建分布式自增id
這篇文章主要介紹了springboot如何使用redis的incr創(chuàng)建分布式自增id,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11Spring解決循環(huán)依賴問題及三級(jí)緩存的作用
這篇文章主要介紹了Spring解決循環(huán)依賴問題及三級(jí)緩存的作用,所謂的三級(jí)緩存只是三個(gè)可以當(dāng)作是全局變量的Map,Spring的源碼中大量使用了這種先將數(shù)據(jù)放入容器中等使用結(jié)束再銷毀的代碼風(fēng)格2022-07-07