Di artikel Kelas Adapter, Anda juga dapat mempelajari apa yang dimaksud dengan kelas adapter dan fungsinya di penanganan event (aksi) di Java. Kedua artikel tersebut mempunyai kaitan erat untuk contoh program kali ini yang masih mengenai penanganan event yang dipicu mouse. Contoh program penanganan event yang dipicu aksi klik mouse ini hanya menggunakan metoda mouseKlicked dari interface MouseListener dan mengabaikan metoda lainnya.
Penangan event metoda mouseClicked adalah pernyataan untuk 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 memanfaatkan MouseAdapter untuk menghindari deklarasi ulang metoda lainnya yang tidak digunakan di program.
Berikut ini adalah kode program untuk penanganan event di Java yang dipicu ketika sebuah mouse diklik di area jendela aplikasi (frame).
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 | // 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); } } |
Baris nomor 25 - 33 adalah deklarasi inner class PenanganMouse sebagai obyek pendengar. Obyek pendengar tidak mengimplementasikan interface MouseListener, tetapi turunan langsung dari kelas MouseAdapter (kata kunci extends). Bila Anda mendeklarasikan PenanganMouse sebagai obyek pendengar dan mengimplementasikan interface MouseListener, inner class PenanganMouse harus mendeklarasikan ulang semua metoda interface MouseListener seperti mouseEntered, mouseExited, mouseClicked, mousePressed dan mouseReleased.
Di dalam blok metoda mouseClicked, baris nomor 29 dan 30 adalah pernyataan untuk mendapatkan koordinat ketika mouse diklik di area frame. Baris nomor 31 adalah pernyataan memanggil metoda paint (baris nomor 36 – 44) dan mengeksekusi pernyataan di blok metoda tersebut.
Di dalam metoda paint, pernyataan baris nomor 41 dan 42 mengatur terlebih dahulu variabel acuan g yang mengacu ke obyek kelas Graphics agar proses menggambar string dengan font dan warna yang telah ditentukan. Baris nomor 43 adalah pernyataan untuk menggambar literal string yang merupakan representasi nilai koordinat yang ditentukan oleh variabel koX dan koY.
