gpt4 book ai didi

java - 如何设置 Dialog 控件的图标 Java FX/Java 8

转载 作者:太空狗 更新时间:2023-10-29 22:37:45 24 4
gpt4 key购买 nike

我可能遗漏了一些非常明显的东西,但我找不到如何为对话框组件(更准确地说是 ProgressDialog)设置图标。我知道如何为舞台做到这一点:

this.primaryStage.getIcons().add(new Image(getClass().getResourceAsStream("/icon/Logo.png")));

但我没有找到 Dialog 系列的任何内容。而且不知何故,设置舞台图标不会影响对话框图标。

谢谢

最佳答案

有一个很好的教程here作者 Marco Jakob,在这里您不仅可以找到如何使用对话框,还可以找到如何解决您的问题。

既适用于新对话框(在 JDK8u40 早期版本中,也适用于 openjfx-dialogs 和 JDK 8u25),或者适用于 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();
}

关于java - 如何设置 Dialog 控件的图标 Java FX/Java 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27976345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com