Di artikel Penanganan MouseEvent Di Java (mouseEntered Dan mouseExited), Anda dapat mempelajari penanganan event Java yang dipicu oleh sebuah mouse. Adapun kegiatan mouse yang diberi penangan event (handler) adalah ketika mouse memasuki jendela aplikasi (mouseEntered) dan ketika keluar dari jendela aplikasi (mouseExited). Di artikel Memahami Fungsi Kelas Adapter Di Java, Anda juga dapat mempelajari apa yang dimaksud dengan kelas-kelas adapter dan fungsinya di dalam penanganan event (aksi) di Java. Kedua artikel tersebut mempunyai keterkaitan dengan contoh program kali ini yang masih mengenai penanganan event yang dipicu oleh mouse. Adapun program penanganan event yang dipicu oleh mouse ini hanya akan menggunakan metoda mouseKlicked dari interface MouseListener dan mengabaikan metoda lainnya.

Penangan event untuk metoda mouseClicked adalah pernyataan yang akan menampilkan titik koordinat ketika sebuah mouse diklik di area jendela aplikasi. Karena interface MouseListener mempunyai beberapa metoda dan hanya metoda mouseClicked yang diberi penangan event, program akan menggunakan MouseAdapter untuk menghindari pendeklarasian ulang metoda lainnya yang tidak digunakan di program. Berikut ini adalah kode program untuk penanganan event yang dipicu ketika sebuah mouse diklik di area jendela aplikasi (frame).

// Nama file : MouseClicked.java
// Menampilkan koordinat saat mouse diklik

// Mengimpor kelas
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

// Deklarasi kelas
public class MouseClicked extends JFrame {
  
   private int koX, koY;
   private Font font;

   // Konstruktor kelas MouseClicked
   public MouseClicked() {

      setTitle("Kelas MouseClicked");
      addMouseListener(new PenanganMouse());
      setSize(280, 130);
      setVisible(true);
   }

   // Deklarasi inner class PenanganMouse
   class PenanganMouse extends MouseAdapter {

      public void mouseClicked(MouseEvent e) {

         koX = e.getX();
         koY = e.getY();
         repaint();
      }
   }

   // Metoda paint untuk menggambar string
   public void paint(Graphics g) {
   
      super.paint(g);

      font = new Font("Tahoma", Font.BOLD, 14);
      g.setFont(font);
      g.setColor(Color.RED);
      g.drawString("[" + koX + ", " + koY + "]", koX, koY);
   }

   // Metoda main
   public static void main(String[] args) {
      MouseClicked frame = new MouseClicked();
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   }
}

Kode program di atas mendeklarasikan inner class PenanganMouse (baris nomor 25) sebagai obyek pendengar. Obyek pendengar tidak mengimplementasikan (tidak menggunakan kata kunci implements) interface MouseListener, tetapi merupakan turunan langsung dari kelas MouseAdapter (menggunakan kata kunci extends). Apabila Anda mendeklarasikan PenanganMouse sebagai obyek pendengar dan mengimplementasikan interface MouseListener, inner class PenanganMouse harus mendeklarasikan ulang semua metoda interface MouseListener (mouseEntered, mouseExited, mouseClicked, mousePressed dan mouseReleased).

Di blok metoda mouseClicked, baris nomor 29 dan 30 adalah pernyataan untuk mendapatkan koordinat saat mouse diklik di area frame. Baris nomor 31 adalah pernyataan untuk memanggil metoda paint (baris nomor 36 – 44) dan mengeksekusi pernyataan di dalam blok metoda tersebut. Di dalam metoda paint, baris nomor 41 dan 42 mengatur terlebih dahulu variabel acuan g yang mengacu ke obyek kelas Graphics agar proses menggambar string menggunakan font dan warna yang telah ditentukan. Baris nomor 43 adalah pernyataan untuk menggambar literal string yang merepresentasikan nilai koordinat yang ditentukan oleh variabel koX dan koY.

Penanganan MouseEvent di Java