Program Java menangani ActionEvent actionPerformed
Menangani ActionEvent actionPerformed Di Program Java
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 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:

  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
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
// 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.

Produk Populer

Murah Taffware OKD180 power supply station 220V 69800mAh
Taffware OKD180 Power Supply Station Generator 220V 69800mAh
Rp 1.045.500
(4.8/5)
Murah Fosi Audio DA2120C Power Amplifier
Fosi Audio DA-2120C Bluetooth 5.0 Amplifier 2.1 Channel with Remote
Rp 2.138.900
(5/5)
Murah Fosi Audio BT30D Pro Power Amplifier
Fosi Audio BT30D PRO Bluetooth 5.0 Amplifier 2.1 Channel 165x2+350W
Rp 1.298.600
(5/5)
Murah Taffware OKD320A Power Supply Station 84000mAh 300W
TAFFWARE OKD320A Power Supply Station Generator Portable 84000mAh 300W
Rp 1.543.500
(4.8/5)

Dapatkan DISKON dan GRATIS ONGKIR untuk pembelian melalui aplikasi Tokopedia.