如何设置对话框控件Java FX / Java 8的图标

前端之家收集整理的这篇文章主要介绍了如何设置对话框控件Java FX / Java 8的图标前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我可能会缺少一些非常明显的东西,但是我无法找到如何设置对话框组件的图标(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();
}
原文链接:https://www.f2er.com/java/122739.html

猜你在找的Java相关文章