Di artikel Mengenal Kelas JTextField Di Java, Anda telah diperkenalkan pada kelas JTextField. Obyek kelas JTextField dapat memicu atau menimbulkan action event. Di contoh program kali ini, ketika pengguna program (user) memasukkan string ke dalam text field dan kemudian menekan tombol enter di keyboard, action event dipicu. Berikut ini adalah kode program Java yang mendemonstrasikan action event yang dipicu oleh obyek text field.

// 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);
  }
}

Dari kode program di atas, obyek pendengar aksi (listener object) adalah anonymous inner class. Anonymous inner class digunakan sebagai argumen parameter dari metoda registrasi addActionListener dari obyek text field (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) 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.

Penanganan Event di kelas JTextField

Baca artikel terkait lainnya: