如何从 ControlsFX 自定义 org.controlsfx.dialog.ProgressDialog
How can I customize the org.controlsfx.dialog.ProgressDialog from ControlsFX
我创建了自己的自定义进度对话框来处理服务器调用,使用的框架会在后台线程 运行 时显示弹出警报。我没有使用 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();
然而,这并没有将我的图像放在我想要的位置,我不确定如何更改它。
如果可能的话,我希望这些样式相同。
谢谢。
您可以通过同时设置 title
和 headerText
来使文本匹配:
pd.setTitle("Please Wait...");
pd.setHeaderText("This will take a moment...");
您可以像现在这样设置contextText
,或者您的service
的task
可以调用updateMessage("some message");
。此消息将显示在进度对话框的 contextText
中。这使您可以更新来自任务的 contentText
消息,让用户知道随着任务的进行正在发生什么。
正在通过 css 设置 "info" 图像。您可以通过替换应用于进度对话框的样式表来更改它:
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");
}
我创建了自己的自定义进度对话框来处理服务器调用,使用的框架会在后台线程 运行 时显示弹出警报。我没有使用 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();
然而,这并没有将我的图像放在我想要的位置,我不确定如何更改它。
如果可能的话,我希望这些样式相同。
谢谢。
您可以通过同时设置 title
和 headerText
来使文本匹配:
pd.setTitle("Please Wait...");
pd.setHeaderText("This will take a moment...");
您可以像现在这样设置contextText
,或者您的service
的task
可以调用updateMessage("some message");
。此消息将显示在进度对话框的 contextText
中。这使您可以更新来自任务的 contentText
消息,让用户知道随着任务的进行正在发生什么。
正在通过 css 设置 "info" 图像。您可以通过替换应用于进度对话框的样式表来更改它:
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");
}