繁体   English   中英

不同的Enter和鼠标单击事件

[英]Different Enter and mouse click event

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

问题是,我在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则不会有密钥代码 ,但是您可以通过检查换行符或回车符来覆盖大多数情况:

public void keyTyped(KeyEvent e) {
    if (e.getKeyChar() != 13 && e.getKeyChar() != 10) {
        btnEditar.setEnabled(false);
        btnDeletar.setEnabled(false);
    }
}

使用DocumentListener侦听对文档中文本的更改。 阅读Swing教程中有关如何编写文档侦听器的部分

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM