【问题标题】:Java - How to tell if user has entered text in a text field, but is now idle?Java - 如何判断用户是否在文本字段中输入了文本,但现在处于空闲状态?
【发布时间】:2023-04-03 10:10:01
【问题描述】:

对于我正在编写的程序,我需要能够判断用户是否在文本字段中输入了文本(但当前没有输入)。我有一个用于文本字段的动作监听器,它能够判断用户当前是否正在通过 KeyListener 输入,但是有没有一种方法可以判断用户是否已停止输入但已在文本框中输入了文本?

谢谢!

【问题讨论】:

    标签: java swing user-interface jtextfield


    【解决方案1】:

    您可以使用Swing timer 并定期检查距该字段最后一次按键是否有一段时间。

    例如对于每次按键,将时间戳保存在变量中。设置计时器以检查时间戳是否早于例如10 秒。

    【讨论】:

    • 无需跟踪时间戳。每次更改文档时只需重新启动计时器。如果计时器触发,那么您知道文档在您指定的时间段内发生了变化,您可以执行一些操作。
    【解决方案2】:

    是的,有。您可能需要附加一个在后台运行的简单线程以保持轮询,或者您也可以在摇摆中使用timer

    【讨论】:

      【解决方案3】:

      检查事件中文本字段中的字母数。如果它大于 0,那么用户已经输入了文本。同样,当您收听 keylistner 时,请为其添加时间戳。并查看它是否超过 3 秒,然后用户处于空闲状态。您主要需要一个线程来查看时间。 Swing Timers 主要用于 GUI 相关的功能。因此,如果您在 IM 服务器上使用它,您应该使用普通的通用计时器。

      【讨论】:

        猜你喜欢
        • 2013-02-20
        • 2016-10-06
        • 1970-01-01
        • 1970-01-01
        • 2012-04-29
        • 1970-01-01
        • 1970-01-01
        • 2015-04-21
        • 1970-01-01
        相关资源
        最近更新 更多