Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วิธีจำกัดจำนวนตัวอักษรใน JTextField ด้วย Java

JTextField เป็นคอมโพเนนต์สำคัญ ให้ผู้ใช้ป้อนข้อความ บรรทัดเดียว สามารถจำกัดจำนวนตัวอักษรที่ผู้ใช้ป้อนได้ด้วยคลาส PlainDocument

ตัวอย่างด้านล่าง implement logic ด้วย PlainDocument อนุญาตพิมพ์ได้สูงสุด 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);
    }
}

ผลลัพธ์

วิธีจำกัดจำนวนตัวอักษรใน JTextField ด้วย Java