A JTextFeld là một trong những thành phần quan trọng nhất cho phép người dùng nhập giá trị văn bản ở định dạng một dòng. Chúng tôi có thể hạn chế số lượng ký tự mà người dùng có thể nhập vào JTextField có thể đạt được bằng cách sử dụng PlainDocument lớp học.
Trong ví dụ dưới đây, chúng tôi có thể triển khai logic bằng cách sử dụng Tài liệu đồng bằng lớp, do đó chúng tôi có thể cho phép người dùng nhập tối đa 10 ký tự, không cho phép nếu chúng tôi nhập nhiều hơn 10 ký tự.
Ví dụ
import java.awt.*; import javax.swing.*; import javax.swing.text.*; class JTextFieldLimit extends PlainDocument { private int limit; JTextFieldLimit(int limit) { super(); this.limit = limit; } JTextFieldLimit(int limit, boolean upper) { super(); this.limit = limit; } public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException { if (str == null) return; if ((getLength() + str.length()) <= limit) { super.insertString(offset, str, attr); } } } public class JTextFieldLimitTest extends JFrame { JTextField textfield; JLabel label; public static void main(String[]args){ new JTextFieldLimitTest().GUI(); } public void GUI() { setLayout(new FlowLayout()); label = new JLabel("max 10 chars"); textfield = new JTextField(15); add(label); add(textfield); textfield.setDocument(new JTextFieldLimit(10)); setSize(350,300); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } }
Đầu ra