【问题标题】:Java/Swing: Problem with key listenerJava/Swing:关键监听器的问题
【发布时间】: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


    【解决方案1】:

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

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

    一般来说,您不应使用应该使用 Key Bindings 的 KeyListener。

    【讨论】:

    • 谢谢,成功了。我是 Java 新手,我不知道键绑定。我忘了提到我曾尝试从 NetBeans 的操作对话框设置加速器,但它不起作用,所以我尝试了关键侦听器。再次感谢!
    猜你喜欢
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多