使用整数进行JTextField验证

时间:2015-04-22 02:54:20

标签: java swing int jtextfield jformattedtextfield

我正在尝试验证JTextField中的整数值。我想确保用户只在设定范围之间输入整数值。我尝试使用JFormattedTextField,但到目前为止没有运气。

1 个答案:

答案 0 :(得分:0)

一个好的选择是使用InputVerifier - 除非满足输入条件,否则您的文本字段不会产生焦点。由于您的限制不仅仅是格式化,而且还是数学格式,因此JFormattedTextField不会在这里做。

public class NumRange extends JFrame {

    public static void main(String[] args) {

        new NumRange();
    }

    NumRange() {

        final int MIN = 0;
        final int MAX = 100;

        JTextField textField = new JTextField();
        textField.setInputVerifier(new InputVerifier() {

            @Override
            public boolean verify(JComponent input) {
                String text = ((JTextField) input).getText();
                int num;
                try {
                    num = Integer.parseInt(text);
                } catch (NumberFormatException e) {
                    return false;
                }
                if (num <= MAX && num >= MIN)
                    return true;
                return false;
            }
        });

        getContentPane().add(textField);
        getContentPane().add(new JTextField(), BorderLayout.PAGE_END);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        pack();
        setVisible(true);
    }
}

在输入顶部文本字段后,尝试将焦点切换到底部文本字段。