JavaFX Ubuntu 舞台停靠图标不更新

Posted

技术标签:

【中文标题】JavaFX Ubuntu 舞台停靠图标不更新【英文标题】:JavaFX Ubuntu stage dock icon does not update 【发布时间】:2016-07-18 14:56:02 【问题描述】:

我正在开发一个通过 JWrapper 在 Windows/OSX/Ubuntu 上跨平台运行的 JavaFX 8 应用程序。现在我正在使用 stage.getIcons().add(..) 将舞台图标设置为与应用程序捆绑的 256x256 PNG。这适用于 Windows,但在 Ubuntu 上,停靠图标仍然是 Oracle/Java 默认图标,如下所示。是否有一些第三方库,或者我可以使用一些技术来获取我自己的图标和工具提示/标题以显示 Ubuntu 停靠图标?

【问题讨论】:

【参考方案1】:

针对 openjdk https://bugs.openjdk.java.net/browse/JDK-8204936 提出了一个问题

在这里发布,以便其他人知道状态

【讨论】:

【参考方案2】:

Ubuntu 有点不同:您需要在 .desktop 文件中设置图标。据我记得我们使用 JDK 的 javapackager 工具的基于 Ant 的构建脚本,它能够为您做到这一点,但这也将整个 JRE 与它捆绑在一起,您需要访问每个(虚拟)机器目标平台和架构(不幸的是,没有像 Eclipse 中那样的 Delta 包)。

所以基本上,当您导出应用程序时,您应该构建一个预定义的 .desktop 文件,该文件将指定 exec 命令和图标的路径(我不知道,如果这需要是绝对的还是相对于.desktop 文件位置)。

【讨论】:

这解决了我的问题——我只是确保当我的应用程序运行时,它是从一个设置了正确图标的 .desktop 文件中完成的。谢谢! 我的情况类似,使用 JWrapper 捆绑了 JRE 不客气。您只需要知道,您也可以在 .desktop 文件的 exec 部分中指定类似“java [more-parameter] -jar ”的命令。从 .desktop 文件的角度来看,并没有真正需要捆绑的 JRE。

以上是关于JavaFX Ubuntu 舞台停靠图标不更新的主要内容,如果未能解决你的问题,请参考以下文章

markdown JavaFX - 为舞台设置图标

如何在javafx中制作透明的场景和舞台?

窗口/舞台失去焦点时的事件

如何在 JavaFX 的控制器文件中调用舞台上的函数

JavaFX 8:舞台插图(窗户装饰厚度)?

在javafx中设置舞台和场景的高度和宽度