Mendapatkan Pengesahan Input Segera dengan Pendengar Perubahan Nilai Medan Teks
Untuk maklum balas segera tentang input pengguna, adalah penting untuk kotak mesej dipaparkan sebagai sebaik sahaja pengguna mengubah suai teks dalam medan teks. Walau bagaimanapun, berdepan dengan isu hanya mencetuskan kotak mesej selepas menekan kekunci Enter, mari kita teliti kod dan cari penyelesaian.
Kod menggunakan ActionListener pada medan teks, yang digunakan apabila sebarang tindakan berlaku di medan, termasuk menekan Enter. Tingkah laku ini menerangkan sebab kotak mesej muncul selepas menggunakan kekunci Enter. Untuk menangani perkara ini, kami memerlukan respons yang lebih segera kepada perubahan dalam nilai medan teks.
Penyelesaian terletak pada menambahkan pendengar kepada Dokumen asas medan teks. Dokumen, yang dibuat secara automatik untuk setiap medan teks, mewakili kandungan teks. Dengan memantau perubahan dalam Dokumen, kami boleh membalas sebarang perubahan dalam teks, tanpa mengira kaedah input pengguna.
Berikut ialah coretan kod yang dikemas kini:
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); } } });
Kod yang diubah suai ini menambah DocumentListener kepada medan teks, yang bertindak balas kepada perubahan pada peringkat Dokumen. Tiga kaedah Kemas Kini berbeza (diubah, alih keluar, sisip) digunakan berdasarkan jenis pengubahsuaian yang dibuat pada teks, dengan berkesan membenarkan pengesahan segera input pengguna.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Dapatkan Pengesahan Input Segera dalam Medan Teks Tanpa Menekan Enter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!