2011-10-26 96 views
2

如何验证用户输入只包含5位数和2位小数。我使用下面的代码来检查5位数字,但是如何检查2位小数。Java文本字段十进制验证

if (!id.equals("")) { 
     try { 
      Integer.parseInt(id); 
      if (id.length() <= 5) { 
       return true; 
      } 
     } catch (NumberFormatException nfe) { 
      return false; 
     } 
    } 
+1

您可能对[JFormattedTextField]感兴趣(http://download.oracle.com/javase/6/docs/api/javax/swing/JFormattedTextField.html)。 –

回答

3
if(id.matches("\\d{5}\\.\\d{2}")) 
    return true; 
return false; 
+1

除了他想要“最多5个”,而不是“完全5个”。 –

3

Swing中的任何验证都可以使用InputVerifier执行。

  1. 首先创建自己的输入验证

    public class MyInputVerifier extends InputVerifier { 
        public boolean verify(JComponent input) { 
         String text = ((JTextField) input).getText(); 
         try { 
          BigDecimal value = new BigDecimal(text); 
          return (value.scale() <= Math.abs(2)); 
         } catch (NumberFormatException e) { 
          return false; 
         } 
        } 
    } 
    
  2. 则这个类的一个实例分配给您的文本字段。 (实际上任何JComponent都可以验证)

myTextField.setInputVerifier(new MyInputVerifier()); 当然,您也可以使用匿名内部类,但如果验证程序也用于其他组件,则普通类更好。

另请参见SDK文档:JComponent#setInputVerifier。