JavaFX: stage.getIcons().add() 在 JavaFX 应用程序中不起作用



我想为我的 JavaFX 应用程序添加一个程序图标。我知道该怎么做 - 我有一个在主应用程序类中定义为字段的 Stage 对象:

private Stage stage;

然后在启动主阶段的方法中,我有一段代码:

Scene scene = new Scene(rootLayout);
primaryStage.setScene(scene);
primaryStage.getIcons().add(new Image("file:view/images/programicon.png"));
primaryStage.show();

我有一个包com.myapp.view,在这个包中我还有另一个包:com.myapp.view.images,我已经粘贴了我想使用的图标,称为programicon.png。早些时候,我写错了:

primaryStage.getIcons().add(new Image("view/images/programicon.png"));

我得到了一个例外:

Caused by: java.lang.IllegalArgumentException: Invalid URL or resource not found
at javafx.scene.image.Image.validateUrl(Image.java:1110)

但是当我将 url 更改为 file:view/images/programicon.png 时 - 现在没有例外,但程序图标仍然是默认的。

programicon.png是没有背景的 512x512 图像。

我找到了解决方案。更改自:

primaryStage.getIcons().add(new Image("file:view/images/programicon.png"));

primaryStage.getIcons().add(new Image(getClass().getResourceAsStream("view/images/programicon.png")));

做到了。

最新更新