2010-12-14 65 views
1

只是一個簡單的問題, 我如何確保我的JtextField只接受數值? 如果用戶輸入其他任何東西 謝謝Java JTextfields

+3

又見http://stackoverflow.com/questions/1313390/is-there-any-way-to-accept-only-numeric-values-in-a-jtextfield/1313448#1313448 - 無需討厭的錯誤messasges。 – 2010-12-14 17:26:34

+0

試試這個: http://stackoverflow.com/questions/1313390/is-there-any-way-to-accept-only-numeric-values-in-a-jtextfield – Igor 2010-12-14 17:17:09

回答

6

您可以使用JFormattedTextField來調出錯誤消息。使用NumberFormatter構建它,它只接受數字。

JFormattedTextField有許多可配置選項,可讓您決定處理輸入有多糟糕。我建議查看文檔。

1

您可以添加關鍵事件偵聽器並檢查每個輸入的字符,也可以安裝文檔格式化程序(NumberFormatter),它不允許輸入除數字以外的任何內容。

0

將關鍵偵聽器與文本字段相關聯,並檢查剛插入的值。如果插入的值不是整數,則提示錯誤。

+0

我喜歡這個想法,但但我怎麼會檢查輸入的值?你可能有一個示例代碼?謝謝 – Maxi90 2010-12-14 17:50:20

-1

我使用這個技巧。

private void myTextFieldKeyReleased(java.awt.event.KeyEvent evt) { 
try{ 
int i = Integer.parseInt(myTextField.getText()); 
} 
catch(Exception ex){ 
//Show error message here with 
JOptionPane.showMessageDialog(null, "Invalid Input...!"); 
myTexTField.setText(""); 
} 
} 
+0

keyListeners對於這樣的任務來說太低級了,它們不夠安全:它會遺漏粘貼的短信。 – kleopatra 2013-09-28 15:30:19