JavaFX应用程序图标

图标文件

为了让我们的JavaFX应用程序看起来更美观,我们需要设置图标文件。其实所谓的应用程序图标文件,有两个不同的含义。

  • Windows应用执行后窗口左上方显示的图标;
  • 文件管理器中看到的应用程序可执行文件的图标。

窗口图标

窗口图标在JavaFX程序中与Stage对象关联。其实本身就是一个Image对象。通过下面的方法来访问:

public class Stage extends Window {
    public final ObservableList<Image> getIcons() {
        return icons;
    }
}

stage.getIcons().add(new Image(...));

当然Kotlin里面会更简单。

stage.icons.add(Image(...))

JavaFX支持的Image格式有以下几种:

  • BMP
  • GIF
  • JPEG
  • PNG
    按照一般的getResourceAsStream就可以引入resouces目录下的图形文件。

应用程序图标

文档
“含有.ico文件扩展名的文件是图像容器文件,用于存储不同Windows应用程序使用的图标,例如出现在用户桌面上的Windows文件夹图标、文件图标和程序图标。”

“ICO文件本身不是一个图像文件。它是一个存储两个位图和图像掩码的容器文件,用于创建保存在该文件中的图标。ICO文件可以被修改以创建Windows界面的自定义图标,有时也会随Windows桌面主题下载。”

一般来说,可以在网上下载到一些免费的ico文件,没有版权问题的ico文件也有很多。

JavaFX应用程序图标

设置JavaFX打包的应用程序有几种方式。

jpackage

打包Java FX应用程序中有,jpackage有一个–icon filename的命令行,这个文件名就写上xxx.ico就可以。

Gradle

用Gradle打包时,要设置jpackageImage的参数。build.gradle中的设置部分:

jlink {
    imageZip = project.file("${buildDir}/distributions/app-${javafx.platform.classifier}.zip")
    options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']
    launcher {
        name = 'timerdemo'
    }
    jpackage {
        imageOptions += '--win-console'
        icon = 'w.ico'
    }
}

这里的设置放在jlink内部,是JPackageData的属性icon。

准备图标文件

在准备图标文件中间的图片时,有很多种选择,从16 × \times × 16一直到256 × \times × 256都有。

在Windows 11中,只需要准备三种格式即可,分别是32 × \times × 32,48 × \times × 48和64 × \times × 64。别问我怎么知道的……
在这里插入图片描述
我现在准备图标文件还用的MVS,造孽啊……

posted @ 2022-02-15 18:13  大福是小强  阅读(63)  评论(0编辑  收藏  举报  来源