创建仅接受单个整数输入的文本字段

问题描述 投票:0回答:1

我正在尝试创建一种方法,该方法仅允许我在文本字段中键入一个数字,但是当前的代码无效。即使触发了KeyPressed方法,它也允许我键入字母。但是,仅将输入限制为1个字符的代码有效。

void formatTextField(JTextField field)
{
    field.addKeyListener(new KeyAdapter()
    {
        public void keyTyped(KeyEvent e)
        { 
            if (field.getText().length() >= 1)
            {
                e.consume();
            }
        }
        public void keyPressed(KeyEvent e)
        {               
            try
            {
                String keyText = KeyEvent.getKeyText(e.getKeyCode());
                Integer.parseInt(keyText);
            }
            catch(NumberFormatException | NullPointerException ex)
            {
                e.consume();
            }
        }
    });
}
java swing keyevent
1个回答
0
投票
加上JSpinner更加用户友好,因为用户能够识别出该字段仅接受数字。

[如果您坚持使用JTextField,我建议您采用DocumentFilter方法,主要在this question.中进行介绍

© www.soinside.com 2019 - 2024. All rights reserved.