JavaFX应用程序图标

Kotlin+JavaFX系列

  1. 使用Kotlin开发JavaFX
  2. Windows下的JavaFX桌面应用程序打包ABC
  3. Kotlin编写JavaFX的顺滑
  4. JavaFX动画:有趣的AnimationTimer
  5. JavaFX应用程序图标
  6. JavaFX专业开发者与业余开发者之间就差一个一个Icon packs
  7. JavaFX七巧板游戏:布局窗格Panes
  8. JavaFX七巧板游戏:布局控件
  9. JavaFX+Kotlin游戏从入门到放弃:拯救蛇蛇大作战又名454行实现几何数独游戏
  10. Kotlin编写JavaFX的顺滑之数据控件(一)列表视图ListView
  11. Kotlin编写JavaFX的顺滑之数据控件(二)表视图TableView基础应用
  12. Kotlin编写JavaFX的顺滑之数据控件(二)表视图TableView基础深入浅出

图标文件

为了让我们的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,造孽啊……

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在JavaFX应用程序启动时替换默认的图标,你需要在`launch()`方法之前设置默认的图标。以下是一个示例代码: ```java import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.image.Image; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) { // 创建一个StackPane作为根节点 StackPane root = new StackPane(); // 创建一个Scene,并将根节点设置为其内容 Scene scene = new Scene(root, 400, 300); // 设置窗口标题 primaryStage.setTitle("JavaFX Window"); // 将Scene设置到Stage primaryStage.setScene(scene); // 显示窗口 primaryStage.show(); } public static void main(String[] args) { // 设置默认的图标 setDefaultIcon(); launch(args); } private static void setDefaultIcon() { // 替换默认的图标 Image icon = new Image("path/to/your/icon.png"); com.sun.javafx.application.PlatformImpl.runLater(() -> { try { // 获取主Stage对象 Stage stage = com.sun.javafx.application.PlatformImpl.getApplication().getPrimaryStage(); // 设置图标 stage.getIcons().add(icon); } catch (Exception e) { e.printStackTrace(); } }); } } ``` 在上面的示例代码中,你需要将`path/to/your/icon.png`替换为你自己的图标文件路径。通过调用`setDefaultIcon()`方法,你可以在JavaFX应用程序启动之前设置默认的图标。这样,无论是在任务栏、窗口标题栏还是窗口管理器中,都会显示你自定义的图标
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大福是小强

除非你钱多烧得慌……

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值