Program Java penanganan event di kelas JTextField
Program Java Penanganan Event Di Kelas JTextField
Di artikel Mengenal Kelas JTextField Di Java, Anda diperkenalkan pada kelas JTextField beserta dengan beberapa konstruktornya. Obyek kelas JTextField dapat memicu atau menghasilkan action event. Di contoh program ini, ketika pengguna program (user) memasukkan string atau teks ke dalam text field dan kemudian menekan tombol keyyboard Enter, action event dipicu.

Berikut ini adalah kode program Java yang mendemonstrasikan action event yang dipicu atau dihasilkan oleh obyek text field dari kelas JTextField.

 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
// Nama field : DemoTextField.java
// Mendemonstrasikan penggunaan text field dan action event

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

// Deklarasi kelas
public class DemoTextField extends JFrame {

   private JLabel label1, label2;
   private JPanel panel1, panel2;
   private JTextField textField;

   public DemoTextField() {
      panel1 = new JPanel();
      panel1.setLayout(new BorderLayout(6, 0));
      panel1.setBackground(Color.WHITE);

     // Meletakkan obyek label1 dan text field di panel1
     label1 = new JLabel("Masukkan string");
     textField = new JTextField(10);
     textField.setForeground(Color.BLUE);
     textField.setHorizontalAlignment(SwingConstants.RIGHT);
     panel1.add(label1, BorderLayout.LINE_START);
     panel1.add(textField, BorderLayout.CENTER);

     panel2 = new JPanel();
     panel2.setLayout(new BorderLayout());
     panel2.setBackground(Color.WHITE);

     // Meletakkan obyek label2 di panel2
     label2 = new JLabel(textField.getText(), JLabel.CENTER);
     label2.setFont(new Font("Tahoma", Font.BOLD, 22));
     panel2.add(label2, BorderLayout.CENTER);

     // Meletakkan panel1 dan panel2 di frame
     getContentPane().add(panel1, BorderLayout.PAGE_START);
     getContentPane().add(panel2, BorderLayout.CENTER);

     // Menangani event actionPerformed
     textField.addActionListener(
        new ActionListener() {
           public void actionPerformed(ActionEvent ae) {
              label2.setText(textField.getText());
              textField.requestFocusInWindow();
           }
        }
     );
  }

  // Metoda main
  public static void main(String[] args) {

     // Menguji program dengan membuat obyek di metoda main
     DemoTextField frame = new DemoTextField();
     frame.setTitle("Kelas DemoTextField");
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.setSize(280, 140);
     frame.setVisible(true);
  }
}

Penanganan Event kelas JTextField di bahasa pemrograman Java

Dari kode program di atas, obyek pendengar aksi (listener object) adalah anonymous inner class. Anonymous inner class digunakan sebagai argumen parameter metoda registrasi addActionListener obyek text field dari kelas JTextField. Ketika obyek text field diberi input string dan kemudian diakhiri dengan menekan tombol keyboard Enter, blok metoda actionPerformed (baris nomor 45 – 48) dieksekusi.

Pernyataan baris nomor 46 digunakan untuk mengganti string yang ditampilkan di obyek label label2 kelas JLabel dengan string yang terdapat di obyek text field. Pernyataan di baris nomor 47 digunakan agar kursor tetap berada di obyek text field setelah penekanan tombol enter.