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.

SILAHKAN BAGIKAN ARTIKEL INI!
Pin It

Produk Laris Toko Gerzal

Edifier R1700BT Active 2.0 Bluetooth Bookshelf Speaker Set

Edifier R1700BT Active 2.0 Bluetooth Bookshelf Speaker Set

Beli di Shopee
Sunbuck AV-555BT Audio Amplifier Bluetooth 5.0 Microphone HiFi

Sunbuck AV-555BT Audio Amplifier Bluetooth 5.0 Microphone HiFi

Beli di Shopee
QUEED Power Supply Station Generator 220V 69800mAh

QUEED Power Supply Station Generator 220V 69800mAh

Beli di Shopee
Fosi Audio V3 Power Amplifier 2 Channel Audio Stereo Hi-Fi TI TPA3255

Fosi Audio V3 Power Amplifier 2 Channel Audio Stereo Hi-Fi

Beli di Shopee
Fosi Audio MC101 Mini Bluetooth Stereo Amplifier With VU Meter

Fosi Audio MC101 Mini Bluetooth Stereo Amplifier With VU Meter

Beli di Shopee