我创建了自己的自定义进度对话框来处理服务器调用,使用框架在后台线程运行时显示弹出警报。我没有使用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();
然而,这并没有将我的图像放在我想要的地方,我不知道如何改变它。
如果可能的话,我希望这些风格相同。
感谢。
答案 0 :(得分:2)
您可以通过设置title
和headerText
:
pd.setTitle("Please Wait...");
pd.setHeaderText("This will take a moment...");
您可以像现在一样设置contextText
,或者service
task
可以拨打updateMessage("some message");
。此消息将显示在进度对话框contextText
中。这允许您更新任务中的contentText
消息,以便在用户进行任务时让用户知道发生了什么。
" info"图像正在通过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");
}