繁体   English   中英

是否可以在JavaFx中启动后更改图标

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM