无论如何使用Java来显示一个行为类似于 TrayIcon.displayMessage() 函数的自定义表单/图像,因为它显示在系统托盘上方一段时间然后消失?
我也在寻找一种方法来同时显示多个通知,方法是让它们相互重叠显示。
如果没有,如何找到系统托盘上方左下角的像素位置?
无论如何使用Java来显示一个行为类似于 TrayIcon.displayMessage() 函数的自定义表单/图像,因为它显示在系统托盘上方一段时间然后消失?
我也在寻找一种方法来同时显示多个通知,方法是让它们相互重叠显示。
如果没有,如何找到系统托盘上方左下角的像素位置?
我认为没有像标准 TrayIcons(在角落带有 x 按钮)那样支持类似于 Mac Growl 通知的堆叠的绘图框架的快捷方式。
您可能必须自己实现它。
我发现像这样堆叠消息完全是浪费时间,因为用户不会注意它们——这些消息的更好位置是在应用程序的状态区域中的一个简单的弹出菜单中。
您可以使用 java.awt.GraphicsEnvironment。getLocalGraphicsEnvironment() 获取有关桌面的信息,其中包含'getMaximumWindowBounds()',它负责诸如任务栏位置之类的事情。
您可以使用 javax.swing.JWindow 的子类来创建一个没有边框的窗口,该窗口可以相对于右下角定位在桌面上。这并不总是作为默认托盘图标工作,因为图标生成器的位置可以在其他地方。您可以添加一个按钮,其作用类似于标准桌面窗口的“x”按钮 - 但它将取决于平台。
如果我使用 LTR,我会使用从右上角堆叠的方形窗口,它似乎运行良好。
去看看Java GNOME。它具有 GTK 的 Java 绑定,包括托盘的状态图标和通知事件。