【发布时间】:2011-02-21 04:54:51
【问题描述】:
我有一个带有用作搜索框的 JTextField 的搜索对话框。
当用户输入内容时,它会搜索数据库,在 JTable 中显示结果并选择其中的第一项。
如果第一个结果是他们正在寻找的,我想让他们快速接受对话框,方法是按 Enter(当 JTextField 处于焦点时)。
所以我在 JTextField 中添加了一个 KeyListener,它工作正常。
现在的问题: 当对话框的父框架上的“搜索”按钮获得焦点时,用户可以通过按 Enter 打开对话框。
显示对话框并且 JTextField 获取 keyReleased 事件(从显示它的 Enter 键),因此它显示并关闭。如果用户按住 Enter 键,则 JTextField 会收到 keyPressed、keyTyped 和 keyReleased 事件。
如何在不采用丑陋的解决方法的情况下进行修复?
平台是 Windows 7 x64,顺便说一句。
谢谢。
【问题讨论】:
标签: java swing keylistener