1

我创建了自己的自定义进度对话框来处理服务器调用,使用的框架将在后台线程运行时显示弹出警报。我没有使用服务/任务来完成后台线程,因此我无法使用 ControlsFX ProgressAlert。

但是对于仅在 UI 上发生的事情,如果可以的话,我宁愿使用它。我不知道如何使这些看起来一样。

这就是我想要的:

在此处输入图像描述

这就是我尝试使用 ControlsFX 进行这项工作的方式:

ProgressDialog pd = new ProgressDialog(service);
        pd.getDialogPane().setGraphic(new ImageView(new Image(getClass().getClassLoader().getResource("images/myImage.png").toExternalForm())));
        pd.setGraphic(new ImageView(new Image(getClass().getClassLoader().getResource("images/myImage.png").toExternalForm())));
        pd.setContentText("Reprinting Batch Header....");
        pd.setHeaderText("Please Wait...");
        pd.initModality(Modality.WINDOW_MODAL);
        pd.initOwner(parent.getPrimaryStage());
        service.start();

但是,这并没有将我的图像放在我想要的位置,而且我不确定如何更改它。

在此处输入图像描述

如果可能的话,我希望这些样式相同。

谢谢。

4

1 回答 1

2

title您可以通过设置和来使文本匹配headerText

pd.setTitle("Please Wait...");
pd.setHeaderText("This will take a moment...");

您可以contextText按现在的方式设置,或者您servicetask可以调用updateMessage("some message");。此消息将显示在进度对话框的contextText. 这允许您更新contentText来自任务的消息,以让用户知道随着任务的进展发生了什么。

“信息”图像是通过 css 设置的。您可以通过替换应用于进度对话框的样式表来更改它:

pd.getDialogPane().getStylesheets().clear();
pd.getDialogPane().getStylesheets().add(YourClass.getResource("/path/to/yourcss.css").toExternalForm());

然后在你的 css 中指定图像:

.progress-dialog.dialog-pane {
    -fx-graphic: url("path/to/image.png");
}
于 2016-02-12T22:21:43.280 回答