ตรวจสอบการเปลี่ยนแปลงของข้อความใน JTextField

นิสิตคนหนึ่งถามผมถึงวิธีการตรวจสอบความยาวของตัวอักษรใน JTextField อัตโนมัติ เช่น ถ้าไม่มีข้อความใน JTextField ให้ปุ่มถูก disabled แต่ถ้ามีข้อความพิมพ์ใน JTextField ให้ enable ปุ่ม

ไอเดียคือใช้ document listener เพื่อติดตามเหตุการณ์การเปลี่ยนแปลงของข้อความใน JTextField

ในคอนสตรัคเตอร์ของ JFrame ให้เพิ่มโค้ดต่อไปนี้ลงไป

Document doc = jTextField1.getDocument();
doc.addDocumentListener(new DocumentListener() {

    public void insertUpdate(DocumentEvent e) {
        jButton1.setEnabled(e.getDocument().getLength() > 0);
    }

    public void removeUpdate(DocumentEvent e) {
        jButton1.setEnabled(e.getDocument().getLength() > 0);
    }

    public void changedUpdate(DocumentEvent e) {
    }
});
Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s