如果我在jTextField中输入值,则按下的按键事件不起作用 [英] Key Pressed event does not work if i enter values in jTextField
问题描述
我有jtextfiled,它将员工ID作为值。
Textfield Keytyped事件不允许用户输入除数字以外的任何内容。它还限制用户只输入7位数。这很好用。
现在我希望一旦用户输入完整ID,他就会输入密钥,以便启用login\logout按钮。我有问题。
当我的textfiled中有7位数字时,Java无法识别输入keypressed事件并且不执行任何操作。但如果我的数字少于7位,它就可以正常工作。
这是我的代码
private void TxtFieldKeyTyped (java.awt.event.KeyEvent evt){
int typedchar = evt.getKeyChar();
if(!(Character.isDigit(typedchar)||
typedchar == KeyEvent.VK_BACK_SPACE ||
typedchar == KeyEvent.VK_DELETE)|| TxtField.getCaretPosition()> 6) {
evt.consume();
}
}
private void TxtFieldKeyPressed(java.awt.event.KeyEvent evt){
// TODO在这里添加您的处理代码:
if(evt.getKeyCode()== KeyEvent.VK_ENTER){
fieldValidate(); //确认用户输入的功能
}
}
请尽早帮助我......
感谢adv!
而不是处理keyevent,尝试使用PlainDocument来放置你的逻辑。
http://www.example8.com/category/view/id/ 3662 [ ^ ]
I have jtextfiled which takes employee id as value.
Textfield Keytyped event does not let user enter anything other than numbers. Also it restrict user to enter only 7 digits. This works fine.
Now i want that once user enter complete id he hits enter key so that login\logout button will be enabled. Here i have problem.
When i have 7 digit id in my textfiled, Java does not recognize enter keypressed event and doesn't do anything. But if i have less than 7 digits, it works fine.
Here is my code
private void TxtFieldKeyTyped(java.awt.event.KeyEvent evt) { int typedchar = evt.getKeyChar(); if(!(Character.isDigit(typedchar)|| typedchar== KeyEvent.VK_BACK_SPACE || typedchar== KeyEvent.VK_DELETE) || TxtField.getCaretPosition() > 6){ evt.consume(); } } private void TxtFieldKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==KeyEvent.VK_ENTER ){ fieldValidate(); //FUnction to validate user input } }
Please help me..as early as possible!
Thanks in adv!
Instead of handling the keyevent, try to use PlainDocument to put your logic.
http://www.example8.com/category/view/id/3662[^]
这篇关于如果我在jTextField中输入值,则按下的按键事件不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!