Di Java, beberapa komponen yang 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 diimplementasikan.

Obyek pendengar yang mengimplementasikan interface MouseListener harus mendeklarasi ulang metoda mousePressed, mouseClicked, mouseEntered, mouseReleased dan mouseExited, 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 yang 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.

// 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);
   }
}
Penanganan MouseEvent di bahasa pemrograman Java

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 yang merupakan turunan langsung kelas JPanel dan 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 di area panel, menggerakkan pointer ke area panel (entered) atau menggerakkan pointer keluar dari area panel (exited), mouse event dipicu. Karena inner class Jendela sendiri mengimplementasikan interface MouseListener, semua metoda interface harus dideklarasikan ulang. Dari semua deklarasi metoda (baris nomor 40 – 63), program hanya fokus pada mouseEntered dan mouseExited.

Saat pointer mouse di area panel, mouse event dipicu dan metoda mouseEntered dieksekusi yaitu mengubah warna background panel menjadi kuning dan 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.

SUKAI DAN BAGIKAN ARTIKEL INI:
Pin It