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

时间:2019-01-25 11:01:50

标签: java javafx javafx-8 javafx-2

我想为我的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)

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

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

1 个答案:

答案 0 :(得分:2)

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

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

收件人

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

成功了!