设置阶段图标

时间:2019-03-19 11:28:56

标签: java javafx

我的第一个意图是设置TextInputDialog图标。但是我从设置舞台图标开始。我看到了几个SO问题,这些问题的答案通常都包含两行代码。

首先,我尝试将此图标放置到/ resources / icons中,但出现了异常“找不到无效的URL或资源”。为确保我在写文件路径时没有出现任何错误,我将此图标移至/ source / sample目录。我使用代码(我将发布整个代码):

public void start(Stage stage) throws Exception {

    FXMLLoader loaderModyfikacjaKonfiguracji = new FXMLLoader(getClass().getResource("FXMLModyfikacjaKonfiguracji.fxml"));
    Parent root = loaderModyfikacjaKonfiguracji.load();
    stage.setTitle("Modyfikacja konfiguracji");
    Image image = new Image("file:icon.png");
    //stage.getIcons().removeAll();
    stage.getIcons().add(image);

    ControllerModyfikacjaKonfiguracji controllerModyfikacjaKonfiguracji = loaderModyfikacjaKonfiguracji.getController();

    stage.setScene(new Scene(root, 510, 700));
    stage.show();
}

在任何地方设置图标看起来都很简单。我也尝试过.jpg。不使用file:会引发异常,使用file:进行编译,但看不到图标更改的影响。我在做什么错或问题在哪里?

1 个答案:

答案 0 :(得分:1)

我已经成功地使用它来设置图标了

primaryStage.getIcons().add(new Image(getClass().getResourceAsStream("AppIcon.png")));

就我而言,应用程序fxml文件和AppIcon.png位于同一目录中。

如果您不想走那条路线,我建议您尝试

 Image image = new Image("file:./icon.png");

但这是一个猜测。