用javafx写pc端应用的时候,肯定是需要修改应用图标的,也就是软件图标。网上有很多方法修改应用图标,我都尝试过,就没成功过。还是去研究了一下启动类
AbstractJavaFxApplicationSupport的这个东东,才发现我走弯路了。简直了,麻了啊
我们打开这个类会发现
有个闪屏类,还定义两个常量 icons 的类型是List,defaultIcons 的类型也是List,他们都是包装Image进去的,所以我们需要看这两个常量,在哪里定义了!
找到这个类里的init()方法
原来如此
看到了吧,这里直接调用了loadDefaultIcons(),将应用的默认图标放到了list里,给init()的list使用,这样不就好办了嘛,
先看看这个图标都需要哪些尺寸的?需要五中尺寸的图片。分别是:
16x16, 24x24, 36x36,42x42,64x64
当然啦,这个不是尺寸是理论上的,当然也得我们上生产环境的时候还是需要更换成这些尺寸的,以适应更多的设备的图标。
接下来,我们只需要按照这个模板,重写一个类,继承AbstractJavaFxApplicationSupport,然后重写这个loadDefaultIcons方法就完美解决修改图标的问题
public abstract class GlobalJavaFxApplicationSupport extends AbstractJavaFxApplicationSupport {
@Override
public Collection<Image> loadDefaultIcons() {
return Arrays.asList(new Image(this.getClass().getResource("/image/logo_16x16.png").toExternalForm()), new Image(this.getClass().getResource("/image/logo_24x24.png").toExternalForm()), new Image(this.getClass().getResource("/image/logo_36x36.png").toExternalForm()), new Image(this.getClass().getResource("/image/logo_42x42.png").toExternalForm()), new Image(this.getClass().getResource("/image/logo_64x64.png").toExternalForm()));
}
}
以上可以完美修改应用图标的问题。javafx的默认的应用图标是一个类似于设置的图标,实在是丑的很。希望能够帮到大家