在 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 類別提供了幾個附加功能:
用法範例
用法範例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中文網其他相關文章!