我有一个调用方法的按钮,在此方法中,它调用另一个方法以连接到数据库并返回结果,如果结果为正,则更改标签并使按钮启用,如果结果为负,则按钮仍被禁用
问题是,我在TF中设置了一个keytyped事件,如果有人在其中键入新内容,请禁用btnEditar:
public void keyTyped(KeyEvent e) {
btnEditar.setEnabled(false);
btnDeletar.setEnabled(false);
}
我不希望此事件“捕获”输入以禁用按钮
有办法做到这一点,还是我不得不认为我是另一种逻辑方式?
最佳答案
正如其他人指出的那样,除了使用KeyListener
之外,还有其他方法可以做到这一点。我将在下面回应您的原始尝试。 KeyListener
是用于此作业的功能简单的工具。
使用keyPressed
代替keyTyped
,然后您将具有一个有效的键代码,可用于忽略回车:
public void keyPressed(KeyEvent e) { // not keyTyped!
if (e.getKeyCode() != KeyEvent.VK_ENTER) {
btnEditar.setEnabled(false);
btnDeletar.setEnabled(false);
}
}
如果出于某些原因坚持使用
keyTyped
,请使用you won't have a key code available,但是您可以通过检查字符的换行符或回车符来解决大多数情况:public void keyTyped(KeyEvent e) {
if (e.getKeyChar() != 13 && e.getKeyChar() != 10) {
btnEditar.setEnabled(false);
btnDeletar.setEnabled(false);
}
}