JTextFeld เป็นหนึ่งในองค์ประกอบที่สำคัญที่สุดที่อนุญาตให้ผู้ใช้ป้อนค่าข้อความในรูปแบบ บรรทัดเดียว เราสามารถจำกัดจำนวนอักขระที่ผู้ใช้สามารถป้อนลงใน JTextField สามารถทำได้โดยใช้ PlainDocument ชั้นเรียน
ในตัวอย่างด้านล่าง เราสามารถใช้ตรรกะได้โดยใช้ PlainDocument คลาส ดังนั้นเราสามารถอนุญาตให้ผู้ใช้ป้อนอักขระได้สูงสุด 10 ตัว ไม่อนุญาตให้ใส่อักขระมากกว่า 10 ตัว
ตัวอย่าง
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); } }
ผลลัพธ์