【问题标题】:KeyListener- wish to input only number, but it let me input a letter [duplicate]KeyListener-希望只输入数字,但它让我输入一个字母[重复]
【发布时间】:2016-02-29 19:10:04
【问题描述】:

我用这个代码限制只能输入数字,但是如果我按的第一个键是一个字母,这个代码让我输入那个字母,只能输入一次,然后当我删除它时,我不能再输入字母了,什么代码有问题吗?我只想输入数字。

amount.addKeyListener(new KeyAdapter() {
    public void keyTyped(KeyEvent e) {
        char c = e.getKeyChar();
        if (!(Character.isDigit(c)))
                e.consume();
        }

}); 

我加了两个右括号,结果还是一样,这里是 video

【问题讨论】:

  • 或 JFormattedTextField 或 JSPinner。 Swing tutorial 有关于这些组件的更多信息。
  • 嗨,感谢您的评论,我知道还有其他选择可以做到这一点,但我想了解为什么会发生这种情况。
  • 在这里完美运行。除了我必须添加两个右括号。除此之外,工作很棒。你能确定这是错误代码吗?
  • 我添加了两个括号,但它对我不起作用,我发布一个小视频显示问题
  • 停止在文本组件上使用KeyListener's!这不合适!如果您必须自己做,请使用 DocumentFilter 或设计用于完成此工作的 JSpinnerJFormattedTextField

标签: java swing


【解决方案1】:

试试这个:

try{
        Double.parseDouble(c);

        //Code here for TRUE case (Is Number)

}catch(NumberFormatException e1){

        //Code here for FALSE case (Is NOT Number)
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 2015-04-13
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 2022-01-16
    相关资源
    最近更新 更多