我有一个调用方法的按钮,在此方法中,它调用另一个方法以连接到数据库并返回结果,如果结果为正,则更改标签并使按钮启用,如果结果为负,则按钮仍被禁用

问题是,我在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);
    }
}

07-27 21:12