如何檢測當滑鼠在 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(); } }
輸出
廣告