JTextField特定格式检查

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

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

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

在此处输入图像描述

这有两个选择:

带有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);