【问题标题】:focus-follows-mouse with [some] java applications doesn't behave as expected[一些] java 应用程序的焦点跟随鼠标没有按预期运行
【发布时间】:2015-11-25 14:08:17
【问题描述】:

环境:在 yEd 3.14 和 GanttProject 2.7.1 中观察到的 Windows 7、JRE 8.65(之前也在 Win XP 上观察到。)

程序的主窗口能否在不位于其他窗口上方且不单击它的情况下获得焦点(不是自动提升)? (在 StackOverflow 搜索“Java”、“窗口”和“焦点”这两个词的 917 结果中没有找到任何结果,尽管到最后我变得睡眼惺忪。)

问题是当我将指针移入或移过程序的窗口时,该窗口没有激活,尽管它激活了“任务栏”中的图标(它是自动隐藏的)。很明显,程序识别指针的存在和焦点更改,但主窗口从未真正获取指针(即主窗口保持非活动状态,并要求我单击它以激活它;这会引发它,这正是我试图避免的行为F-F-M。)

这更麻烦,因为当任务栏中的图标激活时,任务栏会覆盖我的屏幕的一大块,并且在通过单击激活主程序窗口之前不会消失。只需将鼠标从屏幕上的一个位置移动到另一个位置,就有大约 30% 的概率触摸(并半激活)这些程序窗口之一,迫使我找到该窗口,单击它,将其最小化,然后返回我真正想做的事。 (是的,我的“桌面”很混乱,但一切都有它的位置,通常我可以在十几个真正有用的窗口中快速导航。)

感谢您的任何指点或建议。 (虽然可能不会遵循我改变行为的建议。)

【问题讨论】:

    标签: java windows focus autofocus


    【解决方案1】:

    我也遇到过这个问题。到目前为止,我得到的唯一解决方法是尽可能使用 JRE 6,因为这种烦人的行为是从 JRE 7 开始的。

    【讨论】:

    • 似乎只有在显示多个 JFrame 时才会出现奇怪的行为。我使用 Oracle 的演示代码来检查触发了哪些事件docs.oracle.com/.../WindowEventDemo.java。如果只有一个窗口,一切都会按预期工作。如果我运行 WindowEventDemo-Class 的第二个实例,尽管每次都会触发“windowActivated”和“windowGainedFocus”事件,但没有一个窗口能够获得正确的焦点。
    • 我实际上使用的是 JRE 8(如原始帖子中所述)。版本之间可能会有变化,但回到 7 是不可能的。
    猜你喜欢
    • 1970-01-01
    • 2011-04-16
    • 1970-01-01
    • 2012-06-02
    • 2013-01-05
    • 1970-01-01
    • 2019-06-10
    • 1970-01-01
    • 2011-08-28
    相关资源
    最近更新 更多