如何在不使用按钮的情况下将值限制为jtextfield?

时间:2015-10-25 05:39:14

标签: java input jtextfield

如何在Java中将值(int)限制为jtextfield?如果没有Jbutton或类似的东西,我想在文本字段的输入中执行此操作。我尝试过使用evt.getkeychar,但这只给了我一个字符的值。

1 个答案:

答案 0 :(得分:-1)

您可以将关键侦听器添加到JTextField并覆盖基于密钥释放的方法。在该方法中,检查文本中是否存在非数字字符,如果存在,则将其删除。

public class LimitInputValue {
    public static void main(String[] args) {
        JFrame jframe = new JFrame();

        final JTextField jTextField = new JTextField();

        jframe.add(jTextField);
        jframe.pack();
        jframe.setVisible(true);

        jTextField.addKeyListener(new KeyAdapter() {
            @Override
            public void keyReleased(KeyEvent e) {
                String value = jTextField.getText();
                if (value == null || value.isEmpty()) return;
                String newValue = "";
                for (int i = 0; i < value.length(); ++i) {
                    if (Character.isDigit(value.charAt(i))) {
                        newValue += value.charAt(i);

                    }
                }
                jTextField.setText(newValue);
            }
        });
    }
}