Rumah > Java > javaTutorial > Bagaimana untuk Mengesan Perubahan Nilai JTextField Serta-merta Tanpa Menekan Enter?

Bagaimana untuk Mengesan Perubahan Nilai JTextField Serta-merta Tanpa Menekan Enter?

Linda Hamilton
Lepaskan: 2024-12-24 08:07:17
asal
733 orang telah melayarinya

How to Detect JTextField Value Changes Immediately Without Pressing Enter?

Value Change Listener untuk JTextField

Ramai pembangun telah menghadapi isu pendengar tindakan hanya tercetus selepas pengguna menekan masuk dalam medan teks . Untuk membetulkan perkara ini, kita perlu menggunakan pendekatan berbeza yang boleh mengesan perubahan nilai dengan segera.

Penyelesaian terletak pada penggunaan "DocumentListener" dan bukannya "ActionListener." Dokumen asas medan teks secara automatik mendengar sebarang perubahan dalam kandungannya. Dengan menambahkan pendengar pada dokumen ini, kami boleh melaksanakan tindakan tertentu sebaik sahaja pengguna mengubah teks.

Berikut ialah coretan kod diubah suai yang menggabungkan "DocumentListener":

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);
     }
  }
});
Salin selepas log masuk

Ini kod akan mencetuskan mesej ralat sebaik sahaja input dalam medan teks tidak lagi memenuhi syarat (integer positif). Tidak perlu menekan enter atau melakukan sebarang tindakan tambahan.

Jadi, daripada bergantung pada "ActionListener", yang mendengar "ActionEvents" seperti menekan enter, kami memanfaatkan "DocumentListener" yang melihat perubahan dalam dokumen , membenarkan tindak balas segera kepada pengubahsuaian teks.

Atas ialah kandungan terperinci Bagaimana untuk Mengesan Perubahan Nilai JTextField Serta-merta Tanpa Menekan Enter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan