首頁 >Java >java教程 >如何在不按 Enter 鍵的情況下立即在文字欄位中進行輸入驗證?

如何在不按 Enter 鍵的情況下立即在文字欄位中進行輸入驗證?

DDD
DDD原創
2024-12-14 21:08:11349瀏覽

How Can I Get Immediate Input Validation in a Text Field Without Pressing Enter?

使用文字欄位值變更監聽器取得即時輸入驗證

為了對使用者輸入進行及時回饋,訊息方塊必須顯示為當用戶修改文字欄位中的文字時。然而,面對按 Enter 鍵後才觸發訊息框的問題,讓我們深入研究程式碼並找到解決方案。

程式碼在文字欄位上使用了 ActionListener,當有任何動作時都會呼叫該 ActionListener發生在欄位上,包括按 Enter 鍵。此行為解釋了使用 Enter 鍵後出現訊息框的原因。為了解決這個問題,我們需要對文字欄位值的變化做出更即時的回應。

解決方案在於為文字欄位的底層 Document 新增監聽器。為每個文字欄位自動建立的文件表示文字內容。透過監視文件中的更改,我們可以響應文字中的任何更改,無論使用者的輸入方法如何。

這是更新的程式碼片段:

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);
     }
  }
});

此修改後的程式碼新增了文字欄位的 DocumentListener,它對文件層級的變更做出反應。根據對文字的修改類型呼叫三種不同的 Update 方法(更改、刪除、插入),從而有效地立即驗證使用者的輸入。

以上是如何在不按 Enter 鍵的情況下立即在文字欄位中進行輸入驗證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn