1

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

问题是,我在 TF 中设置了一个 keytyped 事件,如果有人在其中输入新内容,请禁用 btnEditar:

            public void keyTyped(KeyEvent e) {                  
                    btnEditar.setEnabled(false);
                    btnDeletar.setEnabled(false);
            }

我不希望此事件“捕获”输入以禁用按钮有一种方法可以做到这一点,或者我必须考虑另一种逻辑方式?

4

2 回答 2

2

正如其他人指出的那样,除了使用KeyListener. 我将在下面回复您最初的尝试。AKeyListener是一项功能强大且易于使用的工具。

使用keyPressed代替keyTyped,然后您将获得一个有效的键码,您可以使用它来忽略输入:

public void keyPressed(KeyEvent e) { // not keyTyped!
    if (e.getKeyCode() != KeyEvent.VK_ENTER) {
        btnEditar.setEnabled(false);
        btnDeletar.setEnabled(false);
    }
}

keyTyped如果您出于某种原因坚持使用,您将没有可用的密钥代码,但您可以通过检查换行符或回车符来涵盖大多数情况:

public void keyTyped(KeyEvent e) {
    if (e.getKeyChar() != 13 && e.getKeyChar() != 10) {
        btnEditar.setEnabled(false);
        btnDeletar.setEnabled(false);
    }
}
于 2013-08-15T15:45:05.870 回答
1

使用 DocumentListener 来监听 Document 中文本的变化。阅读 Swing 教程中有关如何编写文档侦听器的部分。

于 2013-08-15T15:49:46.137 回答