快速问题:我有一个用于用户输入的JTextField,在我的焦点侦听器中,当JTextField失去焦点时,如何检查JTextField中的数据是否为数字?谢谢
快速问题:我有一个用于用户输入的JTextField,在我的焦点侦听器中,当JTextField失去焦点时,如何检查JTextField中的数据是否为数字?谢谢
Integer.parseInt(yourString)
,如果它抛出一个NumberFormatException
异常,你就会知道这个字符串不是一个有效的整数
。try {
Integer.parseInt(myString);
System.out.println("An integer"):
}
catch (NumberFormatException e) {
//Not an integer
}
另一个选择是正则表达式:
boolean isInteger = Pattern.matches("^\d*$", myString);
public void focusLost(FocusEvent fe) {
String text = this.getText();
try {
double d = Double.parseDouble(text);
// or Integer.parseInt(text), etc.
// OK, valid number.
} catch (NumberFormatException nfe) {
// Not a number.
}
}
我认为最好的方法是使用JTextField的KeyTyped监听器,并检查您是否希望用户只键入数字。以下是一段代码:
private void jTextField5KeyTyped(java.awt.event.KeyEvent evt) {
//KEY TYPE FOR AGE
char c = evt.getKeyChar();
if(!(Character.isDigit(c) || (c==KeyEvent.VK_BACKSPACE) || c==KeyEvent.VK_DELETE)) {
getToolkit().beep();
evt.consume();
}
}
System.out.println("An integer");
- Apopei Andrei Ionut(NumberFormatException)
需要改成(NumberFormatException e)
。 - Admin Voter