我的第一个意图是设置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:
进行编译,但看不到图标更改的影响。我在做什么错或问题在哪里?
答案 0 :(得分:1)
我已经成功地使用它来设置图标了
primaryStage.getIcons().add(new Image(getClass().getResourceAsStream("AppIcon.png")));
就我而言,应用程序fxml文件和AppIcon.png位于同一目录中。
如果您不想走那条路线,我建议您尝试
Image image = new Image("file:./icon.png");
但这是一个猜测。