Sangat mungkin Anda memasukkan string atau teks panjang ke obyek text field dari kelas JTextField, namun dengan sebagian string atau teks tidak tampak. Anda perlu meletakkan kursor di string atau teks dan menggerakkan kursor ke kanan atau ke kiri dengan bantuan tombol panah keyboard untuk melihat string atau teks yang tersembunyi. Alternatif lain, Anda meletakkan obyek text field ke obyek scroll bar kelas JScrollBar untuk mempermudah menampilkan string atau teks yang tersembunyi seperti pada contoh program sederhana di bawah ini.
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 | // 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 mengubah area yang tampak jika obyek text field lebih besar dari area yang disediakan. Hasil dari metoda ini adalah obyek kelas BoundedRangeModel yang mempunyai nilai minimum, maksimum, nilai saat ini dan perluasan. Obyek kemudian digunakan oleh scroll bar untuk berkomunikasi dengan obyek text field.