如何检测当鼠标在 Java 中移动到任何组件时的事件?


当鼠标稳定在处理鼠标事件时,我们可以实现一个MouseListener接口。当我们可以在源对象上按下、释放或单击(按下然后释放)鼠标按钮(左键或右键),或将鼠标指针定位于(进入)源对象和从源对象移开(离开)时,MouseEvent就会触发。通过使用MouseAdapter类的mouseEntered()方法,可以检测当鼠标移动到任何组件(例如标签)上的鼠标事件,而可以通过使用MouseAdapter类或MouseListener接口的mouseExited()方法退出。

示例

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MouseOverTest extends JFrame {
   private JLabel label;
   public MouseOverTest() {
      setTitle("MouseOver Test");
      setLayout(new FlowLayout());
      label = new JLabel("Move the mouse moves over this JLabel");
      label.setOpaque(true);
      add(label);
      label.addMouseListener(new MouseAdapter() {
         public void mouseEntered(MouseEvent evt) {
            Color c = label.getBackground(); // When the mouse moves over a label, the background color changed.
            label.setBackground(label.getForeground());
            label.setForeground(c);
         }
         public void mouseExited(MouseEvent evt) {
            Color c = label.getBackground();
            label.setBackground(label.getForeground());
            label.setForeground(c);
         }
      });
      setSize(400, 275);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   public static void main(String[] args) {
      new MouseOverTest();
   }
}

输出


更新于: 2020-2-10

3000+ 浏览次数

开启您的职业生涯

完成课程即可获得认证

开始
广告