Di artikel Cara Menangani Aksi (Event) Di Program Java, Anda dapat mempelajari cara sebuah program java dapat berinteraksi dengan pengguna program (user). Contoh program di artikel tersebut memberi gambaran kepada Anda cara menangani ActionEvent (actionPerformed) ketika tombol kelas JButton diklik. Action event dipicu ketika sebuah komponen (obyek dari kelas Java) diklik.

Beberapa obyek kelas Java dapat memicu ActionEvent ketika diklik seperti kelas JButton, JTextField, JFileChooser, JComboBox, JCheckBox, JRadioButton, JList dan Timer. Kelas atau inner class yang bertindak sebagai obyek pendengar (listener) action event harus mengimplementasikan interface ActionListener untuk merespon action event serta mendeklarasikan ulang metoda actionPerformed. Metoda actionPerformed perlu kelas ActionEvent sebagai argumen parameternya.

Berikut ini adalah contoh program terkait cara menangani ActionEvent ketika sebuah tombol kelas JButton diklik. Program yang dimaksud adalah lingkaran yaitu bangun datar yang pernah kita pelajari di sekolah SD, SMP, SMA atau bahkan sampai ke perguruan tinggi. Program akan menghitung diameter, keliling dan luas lingkaran berdasarkan nilai jari-jari yang diinput. Berikut ini adalah kode program dan hasil eksekusinya:

// Nama file :LingkaranGUI.java
// Membuat aplikasi lingkaran berpenampilan grafis

// Mengimpor kelas
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.TitledBorder;
import java.text.DecimalFormat;
import bangun.datar.Lingkaran;

// Mendeklarasikan kelas
public class LingkaranGUI extends JFrame implements ActionListener{

   private JLabel label1, label2, label3, label4;
   private JTextField text1, text2, text3, text4;
   private JButton tombol;
   private JPanel panel1, panel2, panel3, panel4;
   private Font font;
   private DecimalFormat formatAngka;
   private Lingkaran lingkaran;

   // Mendesain intefer grafis
   public LingkaranGUI() {

      label1 = new JLabel("Jari-Jari");
      label2 = new JLabel("Diameter");
      label3 = new JLabel("Luas");
      label4 = new JLabel("Keliling");

      panel1 = new JPanel();
      panel1.setLayout(new GridLayout(4, 1));
      panel1.add(label1);
      panel1.add(label2);
      panel1.add(label3);
      panel1.add(label4);
     
      font = new Font("Tahoma", Font.BOLD, 14);  

      text1 = new JTextField(11);
      text1.setHorizontalAlignment(JTextField.RIGHT);  
      text1.setFont(font);
      text2 = new JTextField(11); 
      text2.setHorizontalAlignment(JTextField.RIGHT);     
      text2.setFont(font);
      text2.setForeground(Color.RED);
      text2.setEditable(false);
      text3 = new JTextField(11);  
      text3.setHorizontalAlignment(JTextField.RIGHT);    
      text3.setFont(font);
      text3.setForeground(Color.RED);
      text3.setEditable(false);
      text4 = new JTextField(11); 
      text4.setHorizontalAlignment(JTextField.RIGHT);     
      text4.setFont(font);
      text4.setForeground(Color.RED);
      text4.setEditable(false);

      panel2 = new JPanel();
      panel2.setLayout(new GridLayout(4, 1));
      panel2.add(text1);
      panel2.add(text2);
      panel2.add(text3);
      panel2.add(text4);

      tombol = new JButton("Hitung");
      panel3 = new JPanel();
      panel3.setLayout(new FlowLayout(FlowLayout.RIGHT));
      panel3.add(tombol);

      panel4 = new JPanel();
      panel4.setBorder(new TitledBorder("Form Lingkaran"));
      panel4.setLayout(new BorderLayout());
      panel4.add(panel1, BorderLayout.LINE_START);
      panel4.add(panel2, BorderLayout.LINE_END);

      getContentPane().add(panel4, BorderLayout.CENTER);
      getContentPane().add(panel3, BorderLayout.PAGE_END);

      // Registrasi obyek pendengar
      tombol.addActionListener(this);
   }

   // Mendeklarasikan ulang metoda actionPerformed
   public void actionPerformed(ActionEvent ae) {

      if (ae.getSource() == tombol) {

         double r = Double.parseDouble(text1.getText());
         lingkaran = new Lingkaran(r);

         formatAngka = new DecimalFormat("0.00");
         text2.setText("" + formatAngka.format(lingkaran.getJari2() * 2));
         text3.setText("" + formatAngka.format(lingkaran.hitungLuas()));
         text4.setText("" + formatAngka.format(lingkaran.hitungKeliling()));
      }
   }

   // Metoda main
   public static void main(String[] args) {
   
      LingkaranGUI frame = new LingkaranGUI();
      frame.setTitle("Kelas LingkaranGUI");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(250, 180);
      frame.setVisible(true);
   }
}
Penanganan ActionEvent Di bahasa pemrograman Java

Saat program berjalan, Anda dapat memasukkan nilai jari-jari ke kotak teks pertama dan kemudian menekan tombol hitung. Baris nomor 85 – 97 adalah blok metoda actionPerformed yang dieksekusi ketika tombol hitung ditekan. Di dalam blok tersebut, baris nomor 90 adalah pernyataan membuat obyek kelas Lingkaran dan memberi variabel lingkaran acuan ke obyek tersebut.

Baris nomor 93 – 95 adalah pernyataan untuk menampilkan nilai diameter, luas dan keliling lingkaran. Kelas Lingkaran tidak mempunyai metoda untuk mengembalikan nilai diameter lingkaran. Anda dapat menghitung diameter lingkaran dengan menggunakan nilai yang dikembalikan oleh metode getJari2 dan mengalikannya dengan integer 2.

SUKAI DAN BAGIKAN ARTIKEL INI:
Pin It