[英]is it possible to change the icon after start in JavaFx
我有一个程序,我希望图标根据您打开的应用程序区域而改变。 所以默认图标是彩虹。 如果单击绿色按钮,图标将变为绿色。 如果你点击蓝色,它会变成蓝色。 如果可能的话很简单,但我找不到任何解决方案,我只能找到如何更改默认图标的答案。
public static Scene scene;
public static Stage stage1;
public void start(Stage stage) throws IOException {
scene = new Scene(loadFXML("ChooseYourColor"));
stage.setTitle("Rainbow-window");
stage.setScene(scene);
stage1 = stage;
stage.getIcons().add(new Image(TBA.class.getResourceAsStream("RainbowIcon.png")));
stage.show();
}
static void setRoot(String fxml) throws IOException {
scene.setRoot(loadFXML(fxml));
}
private static Parent loadFXML(String fxml) throws IOException {
FXMLLoader fxmlLoader = new FXMLLoader(App.class.getResource(fxml + ".fxml"));
return fxmlLoader.load();
}
@FXML
protected void ChangeBlue() throws IOException {
App.setRoot("Blue-Window");
Stage primStage = App.stage1;
primStage.setTitle("Blue");
primStage.getIcons().add(new Image(App.class.getResourceAsStream("BlueIcon.png")));
}
}
所以我所做的是我制作了一个名为 iconsList 的图像集合,主要添加图像
iconsList.add(new Image(TBA.class.getResourceAsStream("Logo.png")));
iconsList.add(new Image(TBA.class.getResourceAsStream("AMFLogo.png")));
然后在开始时我做了 setAll 并将索引 0 作为初始值
stage.getIcons().setAll(iconsList);
然后在按钮调用中,我将其更改为
primStage.getIcons().set(0, App.iconsList.get(1));
希望这可以帮助别人
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.