เราสามารถ implement MouseListener interface เมื่อ mouse คงที่ขณะจัดการ mouse event MouseEvent จะถูก fire เมื่อกด ปล่อย หรือคลิก (กดแล้วปล่อย) ปุ่มเมาส์ (ซ้ายหรือขวา) ที่ source object หรือวาง mouse pointer ที่ (enter) และออกจาก (exit) source object เราสามารถตรวจจับ mouse event เมื่อ mouse เคลื่อนที่ผ่าน component เช่น label โดยใช้เมธอด mouseEntered() และออกโดยใช้ mouseExited() ของคลาส MouseAdapter หรือ interface MouseListener
ตัวอย่าง
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(); // เมื่อ mouse เคลื่อนผ่าน label สีพื้นหลังเปลี่ยน
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();
}
}
Output
