JAVA

您所在的位置:网站首页 鼠标事件监听的动作有6种 JAVA

JAVA

2024-07-14 15:47| 来源: 网络整理| 查看: 265

基本概念

MouseEvent:所有组件都能发出鼠标事件,MouseEvent类负责捕获鼠标事件,可以通过为组件添加实现了MouseListener接口的监听器类来处理相应的鼠标事件。

MouseListener:处理鼠标事件的类要么实现此接口(及其包含的所有方法),要么扩展抽象类 MouseAdapter(仅重写所需的方法)。 然后使用组件的 addMouseListener 方法将从该类所创建的侦听器对象向该组件注册。当按下、释放或单击(按下并释放)鼠标时会生成鼠标事件。鼠标光标进入或离开组件时也会生成鼠标事件。发生鼠标事件时,将调用该侦听器对象中的相应方法,并将 MouseEvent 传递给该方法。

MouseListener接口共有5个抽象方法,分别在光标移入或移出组件时、鼠标按键被按下或释放时和发生单击事件时被触发。所谓单击事件,就是按键被按下并释放。

public interface MouseListener extends EventListener{ public void mouseReleased(MouseEvent e);//鼠标按键被释放是被触发 public void mousePressed(MouseEvent e);//鼠标按键被按下时被触发 public void mouseExited(MouseEvent e);//光标移除组件时被触发 public void mouseEntered(MouseEvent e);//光标移入组件时被触发 public void mouseClicked(MouseEvent e);//发生单击事件时被触发 } 源代码  import java.awt.*; import java.awt.event.*; import javax.swing.*; public class GUIDEMO { public static void main(String[] args) { // TODO 自动生成的方法存根 EventQueue.invokeLater(() -> { JFrame frame = new MyFrame(); frame.setTitle("DrawTest"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }); System.out.println("Hello World"); } public void print(Object obj) { System.out.println(obj); } } class MyFrame extends JFrame { private static final int DEFAULT_WIDTH = 400; private static final int DEFAULT_HEIGHT = 400; public MyFrame() { setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT); setLocation(100,200); setLayout(new FlowLayout()); JButton but=new JButton("DEMOButton"); but.addActionListener(event-> { print("action"); print(event); }); but.addMouseListener(new MouseAdapter(){ public void mouseEntered(MouseEvent e) { print("enter"); } public void mouseExited(MouseEvent e) { print("exit"); } public void mouseClicked(MouseEvent e) { print("click"); print(e.toString()); if(e.getClickCount()==1) { print("floatclick"); }else if(e.getClickCount()==2){ print("dobleclick"); }else { print("otherclick"); } if(e.getButton()==1) { print("leftclick"); }else if(e.getButton()==2) { print("midclick"); }else if(e.getButton()==3) { print("rightclick"); }else { print("otherclick"); } } }); add(but); } public void print(Object obj) { System.out.println(obj); } public Dimension getPreferredSize() { return new Dimension(DEFAULT_WIDTH, DEFAULT_HEIGHT); } } 运行结果

参考文章

https://blog.csdn.net/qq_36761831/article/details/81564119

https://blog.csdn.net/jisuanjiguoba/article/details/79817587

https://www.cnblogs.com/cyg-06/p/5954768.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3