我正在 JavaFX 21 中开发一个项目,并使用 stage.getIcons 添加一个舞台图标。
stage.getIcons().add(new Image(getClass().getResourceAsStream("/assets/linux/32.png")));
这很好用;该图像既显示在窗口左上角,也显示在任务管理器中 - 无论是在我的程序的 Linux 和 Windows (11) 版本中。
不起作用的是在 Windows 任务管理器中,并且只有在那里,图标才会被压扁。在我编程的 Xubuntu VM 的任务管理器中看起来不错。
这是我的图标(256x256px版本以获得更好的可见性)这就是我在任务管理器中看到的。对于此图像,我使用的是 32x32px 版本的图标,带有较粗的黄线,但图标仍然是圆形的。 我还使用 JavaPackager 将我的代码打包为可执行的 Windows 版本,并且我使用 Windows .ico 文件来处理所有图标用法,这些图标不是窗口栏左上角图标或任务管理器进程图标,并且该文件有效完全没问题。但是,我认为这不应该相关,因为有问题的图标是通过代码本身内的 JavaFX 添加的。
JavaFX 和 Windows 任务管理器之间是否存在任何特定情况导致这种奇怪的挤压?
到目前为止我尝试过的:
使用不同的图标图像尺寸(16、32、64、256px)
设置为 true 进行了重新缩放。
请参阅保留比率。
Image logoImage = new Image(getClass().getResourceAsStream(LOGO_IMAGE));
Image logoImage1 = new Image(getClass().getResourceAsStream(LOGO_IMAGE), 16.0, 16.0, true, true);
Image logoImage2 = new Image(getClass().getResourceAsStream(LOGO_IMAGE), 24.0, 24.0, true, true);
stage.getIcons().addAll(logoImage, logoImage1, logoImage2);