java - JTextField特定格式检查

标签 java swing jtextfield bigdecimal

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

我只能通过将以下代码放入 try block 并捕获 NumberFormatException

来检查是否输入了数字
   try {
       taxratio = new BigDecimal(jTextField1.getText());  }
      } 
         catch (NumberFormatException nfe) {
            System.out.println("Error" + nfe.getMessage());
        }

enter image description here

最佳答案

这里有两个选项:

带有 InputVerifierJTextField。除非文本字段的内容符合指定的格式,否则文本字段不会产生焦点。

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("%  ");
<小时/>

带有MaskFormatterJFormattedTextField。文本字段不接受不符合指定掩码的键入字符。如果您希望在没有输入时显示默认数字,您可以将占位符设置为数字。

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

关于java - JTextField特定格式检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23471121/

相关文章:

java - @PreAuthorize 不适用于方法安全规则和方法参数

java - 如何使用 Selenium 和 TestNG 对多个站点运行一个测试

java - 如何在eclipse插件项目中使用文件的相对路径?

java - 来自其他类的变量在 JFrame 中没有获取值

java - 启动时 JTextField 未显示在 JPanel 中

java - java中的混合类型和混合数组类型数组Object []未编译

java - JPanel 未在 JFrame 上绘制

java - 基于 Java 的应用程序的 GUI 测试工具

java - 如何在 JTabbedPane 的选项卡之间共享 Java 信息

java - 如何在Java运行时添加JTextField?