JTextField特定格式检查
我想检查输入到我的JTextField1
的输入是否等于下面显示的示例图片,该怎么做?
我只能通过下面的代码来检查是否输入了数字来尝试阻止并捕获NumberFormatException
try { taxratio = new BigDecimal(jTextField1.getText()); } } catch (NumberFormatException nfe) { System.out.println("Error" + nfe.getMessage()); }
这有两个选择:
带有InputVerifier
的JTextField
。 除非文本字段的内容具有指定的格式,否则文本字段不会产生焦点。
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("% ");
带有MaskFormatter
的JFormattedTextField
。 文本字段不接受不符合指定掩码的类型字符。 如果要在没有输入时显示默认数字,可以将占位符字符设置为数字。
MaskFormatter mask = new MaskFormatter("%##"); mask.setPlaceholderCharacter(' '); JFormattedTextField textField2 = new JFormattedTextField(mask);