如何檢測當滑鼠在 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+ 瀏覽次數

開啟您的職業生涯

完成課程即可獲得認證

開始
廣告