我创建了自己的自定义进度对话框来处理服务器调用,使用的框架将在后台线程运行时弹出警报。我没有使用Service/Task来完成后台线程,因此不能使用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();然而,这并没有把我的形象放在我想要的地方,我也不知道如何改变它。

如果可能的话,我希望这些风格相同。
谢谢。
发布于 2016-02-12 22:21:43
通过设置title和headerText,可以使文本匹配。
pd.setTitle("Please Wait...");
pd.setHeaderText("This will take a moment...");您可以像现在一样设置contextText,或者您的service的task可以调用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");
}https://stackoverflow.com/questions/32911138
复制相似问题