2015-11-26 49 views
-3

我使用此代码来限制仅用于数字的输入,但如果我按的第一个键是一个字母,则代码让我输入该字母有一次,然后当我删除它时,我不能输入字母,代码有什么问题?我只想输入数字。KeyListener-希望仅输入数字,但它让我输入一个字母

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

}); 

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

+1

或者具有JFormattedTextField或JSpinner的。 [Swing教程](http://docs.oracle.com/javase/tutorial/uiswing/components/componentlist.html)提供了有关这些组件的更多信息。 – camickr

+0

嗨,感谢你的评论,我知道还有其他的选择可以做到这一点,但我想明白为什么会发生这种情况。 – Lazaro

+0

这里完美无瑕。除了我不得不添加两个右括号。除此之外,工作很好。你能确定这是错误的代码吗? – malinator

回答

0

试试这个:

try{ 
     Double.parseDouble(c); 

     //Code here for TRUE case (Is Number) 

}catch(NumberFormatException e1){ 

     //Code here for FALSE case (Is NOT Number) 
} 
相关问题