Java / Swing:密钥监听器的问题

时间:2010-05-19 03:36:35

标签: java swing keylistener

我有一个搜索对话框,其中包含一个用作搜索框的JTextField。

当用户输入内容时,它会搜索数据库,在JTable中显示结果并选择其中的第一项。

如果第一个结果是他们要找的东西,我想让他们快速接受对话,按Enter键(当JTextField聚焦时)。

所以我在JTextField中添加了一个KeyListener,它工作正常。

现在问题: 当对话框的父框架上的“搜索”按钮被聚焦时,用户打开可以通过按Enter打开对话框。

显示对话框,JTextField获取keyReleased事件(来自显示它的Enter键),因此它显示并关闭。如果用户按住Enter键,则JTextField将接收keyPressed,keyTyped和keyReleased事件。

如果不诉诸丑陋的解决方法,我该如何解决?

平台是Windows 7 x64,顺便说一句。

感谢。

1 个答案:

答案 0 :(得分:2)

  

所以我添加了一个KeyListener   JTextField,它工作正常。

您不应该为此使用KeyListener。您应该在文本字段中添加一个ActionListener。

通常,您不应使用应使用Key Bindings

}的KeyListener。