Banner Java

Mengkombinasikan Kelas JTextField dengan Kelas JScrollBar

Di artikel Mengenal Kelas JTextField Di Java, Anda diperkenalkan pada salah satu kelas Java yang paling sering digunakan di dalam pembuatan program yaitu kelas JTextField. Di artikel Penanganan Event Di Kelas JTextField, Anda juga diperkenalkan pada penanganan event (aksi) untuk kelas JTextField. Artikel kali ini masih menyajikan contoh program yang berkaitan dengan kelas JTextField yang akan dikombinasikan dengan kelas Java lain yaitu kelas JScrollBar.

Sangat dimungkinkan Anda memasukkan nilai string atau teks yang panjang ke dalam obyek text field (kelas JTextField) sehingga sebagian string atau teks menjadi tidak tampak. Anda perlu meletakkan kursor di string atau teks dan menggerakkan kursor ke kanan atau ke kiri dengan bantuan tombol panah keyboard untuk bisa menampilkan string atau teks yang tersembunyi. Alternatif lain, Anda dapat meletakkan obyek text field ke dalam obyek scroll bar (kelas JScrollBar) untuk mempermudah proses menampilkan string atau teks yang tidak tampak sebagaimana contoh program sederhana di bawah ini.

// Nama kelas : DemoTextField2.java
// Meletakkan obyek text field ke obyek scroll bar

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

// Deklarasi kelas
public class DemoTextField2 extends JFrame {

   private JPanel panel1, panel2;
   private JScrollBar scrollBar;
   private JScrollPane scrollPane;
   private JLabel label;
   private JTextField textField;
   private BoundedRangeModel brm;
   private JTextArea textArea;

   public DemoTextField2() {
      
      label = new JLabel("Masukkan string");
      textField = new JTextField();
      textField.setForeground(Color.RED);
      scrollBar = new JScrollBar(JScrollBar.HORIZONTAL);

      brm = textField.getHorizontalVisibility();
      scrollBar.setModel(brm);

      panel1 = new JPanel();
      panel1.setLayout(new BorderLayout());
      panel1.add(textField, BorderLayout.PAGE_START);
      panel1.add(scrollBar, BorderLayout.CENTER);

      // Menambahkan panel1 dan panel2 ke panel3
      panel2 = new JPanel();
      panel2.setLayout(new BorderLayout(6, 0));
      panel2.setBackground(Color.WHITE);
      panel2.add(label, BorderLayout.LINE_START);
      panel2.add(panel1, BorderLayout.CENTER);

      textArea = new JTextArea();
      textArea.setEditable(false);
      textArea.setLineWrap(true);
      textArea.setWrapStyleWord(true);
      scrollPane = new JScrollPane(textArea);
      
      // Meletakkan panel2 dan scrollPane di frame
      getContentPane().add(panel2, BorderLayout.PAGE_START);
      getContentPane().add(scrollPane, BorderLayout.CENTER);

      // Membuat obyek pendengar
      PendengarAksi pendengar = new PendengarAksi();

      // Mendaftarkan obyek pendengar
      textField.addActionListener(pendengar);
   }

   // Deklarasi Inner class sebagai pendengar aksi
   class PendengarAksi implements ActionListener {

      public void actionPerformed(ActionEvent ae) {

         if (ae.getSource() == textField) {
            textArea.setText(textField.getText());
            textField.requestFocusInWindow();
         }
      }
   }
      
   // Metoda main
   public static void main(String[] args) {
      DemoTextField2 frame = new DemoTextField2();
      frame.setTitle("Kelas DemoTextFiled2");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(320, 150);
      frame.setVisible(true);
   }
}

Baris nomor 28 adalah pernyataaan untuk memperoleh jangkauan tampilan obyek text field. Tampilan dapat disesuaikan untuk merubah lokasi area yang tampak jika ukuran obyek text field lebih besar dari area yang disediakan untuk obyek tersebut. Hasil dari metoda ini adalah obyek dari kelas BoundedRangeModel yang mempunyai nilai minimum, maksimum, nilai saat ini dan perluasan. Obyek tersebut kemudian digunakan oleh scroll bar untuk berkomunikasi dengan obyek text field.

Kombinasi kelas JTextField dan kelas JScrollBar

Untuk memperbaiki mutu konten, Anda dapat berpartisipasi dengan cara melaporkan apabila menemukan kesalahan ketik, kata-kata rangkap, redaksi kurang pas (jelas), gambar pendukung tidak ada dan sebagainya melalui form Kontak Kami untuk mendapatkan perbaikan. Terima kasih atas kerjasamanya.

Hindro HindriantoHindro adalah pendiri sekaligus admin termasmedia.com dan topikit.com, blog online yang mengulas teknologi informasi. Dunia web mulai ditekuni tahun 2012 dengan mempelajari CMS Joomla dan Wordpress. Beberapa buku yang sekarang dipelajari antara lain PHP, HTML5, ASP.NET 4.5, JavaScript, CSS3, MySQL, Adobe Dreamweaver, Adobe Photoshop dan Adobe Flash.