Mengenal memahami Inner Class di program Java
Mengenal Dan Memahami Fungsi Inner Class Di Program Java
Event di program Java dapat ditangani dengan beberapa cara. Di artikel Kelas Sebagai Interface Dan Obyek Pendengar Aksi (Event), Anda dapat mempelajari sebuah kelas bertindak sebagai antarmuka grafis (GUI) dan juga sebagai obyek pendengar aksi (event listener). Obyek pendengar (listener object) akan mendengarkan setiap event yang dipicu pengguna aplikasi, misalnya mengklik tombol hitung atau bisa oleh sistem dan akan mengeksekusi baris perintah yang diprogramkan.

Selain kelas antarmuka grafis yang bertidak sebagai obyek pendengar event, Anda juga dapat mendeklarasikan kelas tersendiri yaitu inner class yang dapat digunakan sebagai obyek pendengar event. Inner class adalah kelas yang berada di dalam kelas yang lain. Inner class tersebut harus mengimplementasikan interface yang bersesuaian dengan event yang ditangani. Contoh program sederhana berikut ini mendemonstrasikan penggunaan inner class sebagai obyek pendengar event.

 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
// Nama file : InnerClassAsListener.java
// Mendemontrasikan inner class sebagai obyek pendengar event

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

// Deklarasi kelas
public class InnerClassAsListener extends JFrame {

   private JPanel panel1, panel2;
   private JButton tombolRed, tombolYellow, tombolGreen;

   public InnerClassAsListener() {

      // Membuat obyek JButton dan JPanel
      tombolRed = new JButton("RED");
      tombolYellow = new JButton("YELLOW");
      tombolGreen = new JButton("GREEN");

      panel1 = new JPanel();
      panel2 = new JPanel();
      panel2.setBackground(Color.RED);

      panel1.setLayout(new GridLayout(1,2));
      panel1.add(tombolRed);
      panel1.add(tombolYellow);
      panel1.add(tombolGreen);
      
      Container container = getContentPane();
      container.setLayout(new BorderLayout());
      container.add(panel2, BorderLayout.CENTER);
      container.add(panel1, BorderLayout.PAGE_END);

      // Membuat obyek pendengar
      PendengarAksi pendengar = new PendengarAksi();
 
      // Mendaftarkan obyek pendengar
      tombolRed.addActionListener(pendengar);
      tombolYellow.addActionListener(pendengar);
      tombolGreen.addActionListener(pendengar);
   }

   // Metoda main
   public static void main(String[] args) {
      InnerClassAsListener frame = new InnerClassAsListener();
      frame.setTitle("Kelas InnerClassAsListener");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(280, 150);
      frame.setVisible(true);
   }

   // Mendeklarasikan inner class sebagai obyek pendengar event
   class PendengarAksi implements ActionListener {

      public void actionPerformed(ActionEvent e) {

         if (e.getSource() == tombolRed)
            panel2.setBackground(Color.RED);

         else if (e.getSource() == tombolYellow)
            panel2.setBackground(Color.YELLOW);
         
         else if (e.getSource() == tombolGreen)
            panel2.setBackground(Color.GREEN);

      }
   }
}

inner class sebagai antarmuka grafis dan obyek event listener Java

Inner class adalah kelas yang dideklarasikan di dalam kelas lain. Dari kode program di atas, inner class pendengarAksi dideklarasikan di baris nomor 55 – 69. Karena inner class bertindak sebagai obyek pendengar untuk tipe ActionEvent dipicu tombol tombolRed, tombolYellow dan tombolGreen kelas JButton, maka inner class harus mengimplementasikan interface ActionListener dan juga mendeklarasikan ulang metoda actionPerformed.

Baris nomor 37 adalah pernyataan untuk mendeklarasikan variabel pendengar (listener), membuat obyek kelas PendengarAksi (inner class) dan memberi variabel pendengar acuan ke obyek tersebut.

Baris nomor 40 – 42 adalah pernyataan untuk meregistrasi obyek pendengar oleh obyek sumber menggunakan metoda addActionListener, dimana argumen metoda tersebut adalah variabel yang mengacu ke obyek kelas PendengarAksi. Saat Anda mengklik salah satu dari tombol berlabel “RED”, “YELLOW” dan “GREEN”, metoda actionPerformed dieksekusi.

Baris nomor 59 – 66 adalah penyeleksian if sederhana untuk menyeleksi tombol yang memicu event menggunakan ekspresi e.getSource(). Bila yang ditekan adalah tombolRed, pernyataan baris nomor 60 dieksekusi, bila yang ditekan adalah tombolYellow, pernyataan baris nomor 63 dieksekusi dan bila yang ditekan adalah tombolGreen, pernyataan baris nomor 66 dieksekusi.

PRODUK TOKO GERZAL

Taffware Power Supply Station Generator Portable 84000mAh 300W - OKD320A
Taffware Power Supply Generator Portable 84000mAh 300W ...
Rp 1.947.600
(4.9/5)
Fosi Audio Amplifier Bluetooth 5.0 HiFi 2.1 Channel 165x2+350W TPA3255 - BT30D PRO-MAX
Fosi Audio BT30D PRO Amplifier Bluetooth 5.0 HiFi 2.1 Channel ...
Rp 1.787.500
(5/5)
Fosi Audio BT20A PRO Amplifier Bluetooth 5.0 Treble and Bass 300W x2 TPA3255
Fosi Audio BT20A PRO Amplifier Bluetooth 5.0 Treble and Bass ...
Rp 1.491.600
(5/5)
OTOHEROES Charger Mobil Listrik EV Swipe Card Type2 Female AC Charging - PG01
OTOHEROES Charger Mobil Listrik EV Swipe Card Type2 Female ...
Rp 3.239.600
(5/5)

Untuk daftar lengkap produk, kunjungi toko online kami, GERZAL, di marketplace Shopee, Tokopedia, dan TikTok Shop.
Harga produk di setiap marketplace berbeda-beda dan dapat berubah sewaktu-waktu.
Gunakan aplikasi saat berbelanja untuk mendapatkan potongan harga produk dan ongkos kirim, bahkan ongkos kirim gratis untuk wilayah tertentu.