【发布时间】:2016-09-21 20:07:00
【问题描述】:
我实际上正在开发一个聊天应用程序。 如果用户收到一条新消息,我会向他的桌面发送通知,即使他的程序在前台。这很烦人。 所以我想知道如何检查应用程序是否在前景/聚焦/显示(无论如何)。 我已经用谷歌搜索了,但没有找到可行的方法。
【问题讨论】:
-
我不知道有什么强大的 Java 机制可以解决这个问题。我认为您需要使用操作系统级别的库(IE:Windows Library)。
-
@Ironcache 我正在使用 Java,我不能使用 Windows 库对吗?无论如何,Java 程序应该是跨平台的,而不是特定于 Windows 的(我的是):)
-
@Ironcache 我的同事刚刚用一个空白应用程序尝试了它,它适用于focusedProperty,但我的应用程序却没有。 focusProperty 上的更改侦听器甚至没有被调用,并且 isFocused 也永久返回 false
-
是的,焦点是变化无常的,根据我的经验,在 Java 中 具有焦点的上下文之外依赖它通常是可疑的。在 Java 之外,Java 的焦点机制不能很好地工作。也就是说,试图让你的同事的结果与你的相同,我有几个问题:1)他如何最小化与你如何最小化。按最小化与选择不同的窗口(在当前 JVM 之外)与 Java 的观点不同。 2)他和你在什么操作系统上运行?你能在你的机器上重现他的空白应用程序的结果吗?
标签: java javafx focus visible stage