我有一个搜索对话框,其中包含一个用作搜索框的JTextField。
当用户输入内容时,它会搜索数据库,在JTable中显示结果并选择其中的第一项。
如果第一个结果是他们要找的东西,我想让他们快速接受对话,按Enter键(当JTextField聚焦时)。
所以我在JTextField中添加了一个KeyListener,它工作正常。
现在问题: 当对话框的父框架上的“搜索”按钮被聚焦时,用户打开可以通过按Enter打开对话框。
显示对话框,JTextField获取keyReleased事件(来自显示它的Enter键),因此它显示并关闭。如果用户按住Enter键,则JTextField将接收keyPressed,keyTyped和keyReleased事件。
如果不诉诸丑陋的解决方法,我该如何解决?
平台是Windows 7 x64,顺便说一句。
感谢。
答案 0 :(得分:2)
所以我添加了一个KeyListener JTextField,它工作正常。
您不应该为此使用KeyListener。您应该在文本字段中添加一个ActionListener。
通常,您不应使用应使用Key Bindings的
}的KeyListener。