Di Java, beberapa komponen berbeda dapat memicu tipe event (aksi) yang sama dan juga beberapa komponen dapat memicu lebih dari satu event berbeda. Mouse event dapat dipicu ketika sebuah mouse ditekan (pressed), melepas penekanan (released), mengklik (clicked), mengarahkan pointer (entered), menjauhkan pointer (Exited), menggerakkan (moved), dan menekan sambil menggerakkan (dragged).
Obyek pendengar mouse event harus mengimplementasikan salah satu atau kedua interface yaitu interface MouseListener dan MouseMotionListener. Obyek pendengar (listener object) juga harus mendeklarasikan ulang semua metoda dari salah satu atau kedua interface tergantung pada interface yang ingin diimplementasikan.
Obyek pendengar yang mengimplementasikan interface MouseListener harus mendeklarasi ulang metoda mousePressed, mouseClicked, mouseExited, mouseEntered dan juga mouseReleased, sedangkan obyek pendengar yang mengimplementasikan interface MouseMotionListener harus mendeklarasikan ulang metoda mouseDragged dan mouseMoved.
Bila obyek pendengar mengimplementasikan kedua interface, maka semua metoda di kedua interface harus dideklarasikan ulang sekalipun tidak semua metoda digunakan untuk menangani mouse event. Anda dapat menggunakan obyek kelas MouseEvent yang bertindak sebagai argumen parameter semua metoda untuk memperoleh nilai properti yang terkait mouse event.
Berikut ini adalah contoh program Java menggunakan metoda mouseEntered dan mouseExited untuk mengubah warna jendela form aplikasi. Saat pointer berada di atas jendela, jendela akan berubah menjadi warna kuning dan bila pointer berada diluar area jendela, jendela berubah menjadi warna putih.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | // Nama file : EnteredExited.java // Merubah warna jendela menggunakan mouseEntered dan mouseExited // Mengimpor kelas import javax.swing.*; import java.awt.*; import java.awt.event.*; // Deklarasi kelas public class EnteredExited extends JFrame { private Font font; private JLabel label; public EnteredExited() { Container container = getContentPane(); container.setLayout(new BorderLayout()); Jendela jendela = new Jendela(); jendela.setBackground(Color.WHITE); container.add(jendela, BorderLayout.CENTER); font = new Font("Tahoma", Font.BOLD, 14); label = new JLabel("Pointer berada di luar area."); label.setHorizontalAlignment(SwingConstants.CENTER); label.setFont(font); label.setForeground(Color.BLUE); container.add(label, BorderLayout.PAGE_END); } class Jendela extends JPanel implements MouseListener { public Jendela() { // Meregistrasi listener addMouseListener(this); } // Deklarasi ulang metoda mousePressed public void mousePressed(MouseEvent e) { } // Deklarasi ulang metoda mouseReleased public void mouseReleased(MouseEvent e) { } // Deklarasi ulang metoda mouseClicked public void mouseClicked(MouseEvent e) { } // Deklarasi ulang metoda mouseEntered public void mouseEntered(MouseEvent e) { this.setBackground(Color.YELLOW); label.setText("Pointer berada di dalam area."); } // Deklarasi ulang metoda mouseExited public void mouseExited(MouseEvent e) { this.setBackground(Color.WHITE); label.setText("Pointer berada di luar area."); } } public static void main(String[] args) { EnteredExited frame = new EnteredExited(); frame.setTitle("Kelas EnteredExited"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 150); frame.setVisible(true); } } |

Program terdiri dari dua kelas yaitu kelas EnteredExited (baris nomor 10 – 73) yang merupakan turunan kelas JFrame dan kelas Jendela (baris nomor 32 – 64). Kelas Jendela adalah inner class dan turunan langsung kelas JPanel yang mengimplementasikan interface MouseListener. Baris nomor 34 – 37 adalah blok konstruktor kelas Jendela. Di dalam konstruktor, obyek pendengar yang diwakili kata kunci this diregistrasi menggunakan metoda addMouseListener.
Ketika tombol mouse ditekan (pressed), dilepas (released), diklik (clicked), saat pointer berada di area panel, menggerakkan pointer ke area panel (entered) atau menggerakkan pointer keluar dari area panel (exited), mouse event dipicu. Karena inner class Jendela mengimplementasikan interface MouseListener, semua metoda interface harus dideklarasikan ulang. Dari semua deklarasi metoda (baris nomor 40 – 63), program Java hanya fokus pada mouseEntered dan mouseExited.
Ketika pointer mouse berada di area panel, mouse event dipicu dan metoda mouseEntered dieksekusi yaitu mengubah warna background panel menjadi kuning serta mengganti nilai literal string label. Demikian pula, ketika pointer mouse bergerak keluar area panel, mouse event dipicu kembali dan metoda mouseExited dieksekusi untuk mengubah warna background panel menjadi putih dan mengganti kembali nilai literal string label.