Rumah >Java >javaTutorial >Bagaimana untuk Menunjukkan Kotak Mesej Serta-merta pada Perubahan Nilai Medan Teks dalam Swing?

Bagaimana untuk Menunjukkan Kotak Mesej Serta-merta pada Perubahan Nilai Medan Teks dalam Swing?

Susan Sarandon
Susan Sarandonasal
2024-12-23 06:13:30333semak imbas

How to Show a Message Box Immediately on TextField Value Change in Swing?

Pendengar Perubahan Nilai Medan Teks

Matlamat anda ialah untuk memaparkan kotak mesej serta-merta apabila nilai berubah dalam medan teks. Walau bagaimanapun, kod semasa anda menggesa kotak mesej hanya selepas menekan kekunci enter. Untuk menyelesaikan isu ini, fokus pada Dokumen asas untuk menjejaki perubahan medan teks.

Penyelesaian:

Diperkenalkan dalam Swing, JTextFields menggunakan Dokumen yang menyimpan dan mengurus teks kandungan. Menambah DocumentListener membolehkan anda memantau perubahan teks dalam medan. Berikut ialah kod yang dikemas kini:

// Listen for changes in the text
textField.getDocument().addDocumentListener(new DocumentListener() {
    public void changedUpdate(DocumentEvent e) {
        warn();
    }

    public void removeUpdate(DocumentEvent e) {
        warn();
    }

    public void insertUpdate(DocumentEvent e) {
        warn();
    }

    public void warn() {
        if (Integer.parseInt(textField.getText()) <= 0) {
            JOptionPane.showMessageDialog(null,
                    "Error: Please enter number bigger than 0", "Error Message",
                    JOptionPane.ERROR_MESSAGE);
        }
    }
});

Dengan DocumentListener tersedia, sebarang perubahan teks dalam medan kini mencetuskan kaedah warn(), yang menyemak input dan memaparkan kotak mesej jika perlu. Dengan cara ini, kotak mesej muncul serta-merta selepas pengguna mengubah suai teks, memenuhi keperluan anda.

Atas ialah kandungan terperinci Bagaimana untuk Menunjukkan Kotak Mesej Serta-merta pada Perubahan Nilai Medan Teks dalam Swing?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn