如何在AWT的托盘栏通知中自定义程序名称?

2022-09-04 21:36:02

AWT的类有一个名为displayMessage的方法,它显示了一个本机操作系统消息,在Windows 10中如下所示:TrayIcon

enter image description here

当这样调用时:

Image image = Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("/isotype.png"));
final TrayIcon trayIcon = new TrayIcon(image, appName());
trayIcon.displayMessage("Caption", "Text text text", TrayIcon.MessageType.INFO);

如何自定义字符串“Java(TM) Platform SE 二进制文件”。当我为我的应用程序构建一个独立的exe时,它反而读作“Blah.exe”,而如果只读作“Blah”,我更喜欢它。

为了打包应用程序,我通过优秀的JavaFX-Gradle-Plugin使用JavaFX工具链。


答案 1

一种解决方法是使用 。在这种情况下,您根本不会得到最后一行,但您也不会得到任何信息警告错误图标。TrayIcon.MessageType.NONE

但好消息是,您可以在显示的消息中获取应用程序图标。如果你用一些像这样的镜像创建,然后用JavaFX-Gradle-Plugin打包你的应用程序,方法将重用这个镜像,你会得到这样的东西:TrayIconTrayIcon trayIcon = new TrayIcon(image, "Tooltip")displayMessage


答案 2

TrayIcon的行为取决于平台。在Mac上,没有“Java(TM)Platform SE二进制文件”这样的东西,也没有可执行文件。

如果你想改变你平台上的行为,我想你可以玩awt.toolkit。见 https://docs.oracle.com/javase/8/docs/api/java/awt/Toolkit.html#getDefaultToolkit--