在 JTextField 中仅接受数字值
可以通过使用 JFormattedTextField 类来限制 JTextField 仅接受数字值。此类支持使用 Format 对象验证不同的数据类型。
使用 JFormattedTextField 进行数字输入
JFormattedTextField 提供了用于验证数据和提供视觉反馈的灵活解决方案。以下是如何使用它进行数字输入:
NumberFormat integerNumberInstance = NumberFormat.getIntegerInstance(); ImprovedFormattedTextField integerFormattedTextField = new ImprovedFormattedTextField(integerNumberInstance, 100);
在此示例中:
用于完整解析的自定义格式化程序
为了确保只接受完整的数值,我们可以使用 ParseAllFormat 类作为格式的装饰器object:
final Format format = new ParseAllFormat(integerNumberInstance);
此包装格式确保如果输入部分数值,则该值将是被拒绝。
ImprovedFormattedTextField 的其他功能
ImprovedFormattedTextField 类提供了几个附加功能:
用法示例
要将数字输入功能合并到 GUI 中:
JPanel panel = new JPanel(new BorderLayout()); panel.add(integerFormattedTextField, BorderLayout.WEST); JButton button = new JButton(new AbstractAction() { { integerFormattedTextField.addPropertyChangeListener("editValid", event -> setEnabled((Boolean) event.getNewValue())); putValue(Action.NAME, "Show Current Value"); } @Override public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, "The current value is [" + integerFormattedTextField.getValue() + "]"); } });
此设置初始化数字文本领域具有改进的行为。该按钮显示值,并且仅在输入有效时才启用。
以上是在 Java 中如何限制 JTextField 仅接受数字输入?的详细内容。更多信息请关注PHP中文网其他相关文章!