JTextField特定格式检查

时间:2014-05-05 11:15:46

标签: java swing jtextfield bigdecimal

我想检查输入到JTextField1的输入是否等于下面显示的示例图片,该怎么做?

我只能通过下面的代码来检查是否输入了数字来尝试阻止并捕获NumberFormatException

   try {
       taxratio = new BigDecimal(jTextField1.getText());  }
      } 
         catch (NumberFormatException nfe) {
            System.out.println("Error" + nfe.getMessage());
        }

enter image description here

1 个答案:

答案 0 :(得分:1)

以下是两个选项:

JTextField <{1}} InputVerifier。除非文本字段的内容具有指定的格式,否则文本字段不会产生焦点。

JTextField textField = new JTextField();
textField.setInputVerifier(new InputVerifier() {
    @Override
    public boolean verify(JComponent input) {
        String text = ((JTextField) input).getText();
        if (text.matches("%\\d\\d"))
            return true;
        return false;
    }
});
textField.setText("%  ");

JFormattedTextField <{1}} MaskFormatter。文本字段不接受不符合指定掩码的类型字符。如果您希望在没有输入时显示默认数字,可以将占位符字符设置为数字。

MaskFormatter mask = new MaskFormatter("%##");
mask.setPlaceholderCharacter(' '); 
JFormattedTextField textField2 = new JFormattedTextField(mask);