如何设置对话框控件Java FX / Java 8的图标
发布时间:2020-12-14 05:24:01 所属栏目:Java 来源:网络整理
导读:我可能会缺少一些非常明显的东西,但是我无法找到如何设置对话框组件的图标(ProgressDialog更精确).我知道如何做一个Stage,this.primaryStage.getIcons().add(new Image(getClass().getResourceAsStream(“/ icon / Logo.png”)))但是我没有找到Dialog系列的
我可能会缺少一些非常明显的东西,但是我无法找到如何设置对话框组件的图标(ProgressDialog更精确).我知道如何做一个Stage,this.primaryStage.getIcons().add(new
Image(getClass().getResourceAsStream(“/ icon / Logo.png”)))但是我没有找到Dialog系列的任何东西.不知何故,设置舞台图标不会影响对话框图标.
谢谢 解决方法
Marco Jakob有一个非常好的教程
here,您可以在其中找到不仅如何使用对话框,还可以找到如何解决您的问题.
对于新的对话框(在JDK8u40早期版本中,或者具有JDK 8u25的openjfx-dialogs),或者对于ControlsFX的对话框,为了设置对话框的图标,可以使用此solution: Stage stage = (Stage) dialog.getDialogPane().getScene().getWindow(); stage.getIcons().add( new Image(this.getClass().getResource("<image>.png").toString())); 此代码段显示如何使用ControlsFX中的ProgressDialog,并为对话框设置图标: @Override public void start(Stage primaryStage) { Service<Void> service = new Service<Void>() { @Override protected Task<Void> createTask() { return new Task<Void>() { @Override protected Void call() throws InterruptedException { updateMessage("Message . . ."); updateProgress(0,10); for (int i = 0; i < 10; i++) { Thread.sleep(300); updateProgress(i + 1,10); updateMessage("Progress " + (i + 1) + " of 10"); } updateMessage("End task"); return null; } }; } }; Button btn = new Button("Start Service"); btn.setOnAction(e -> { ProgressDialog dialog = new ProgressDialog(service); dialog.setTitle("Progress Dialog"); dialog.setHeaderText("Header message"); Stage stage = (Stage) dialog.getDialogPane().getScene().getWindow(); stage.getIcons().add(new Image(this.getClass().getResource("<image>.png").toString())); service.start(); }); Scene scene = new Scene(new StackPane(btn),300,250); primaryStage.setScene(scene); primaryStage.show(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |