【发布时间】:2016-05-10 08:22:26
【问题描述】:
我正在使用下面的代码来显示加载任务的进度指示器。我正在使用来自 ControlsFX 进度指示器的 MaskerPane。 但是当我使用该组件时,maskerpane 只显示 1 次。请提出一个更好的显示进度指示器的方法。
@FXML
private MaskerPane progressPane;
@FXML
private void addMemberSelect() {
Task task = new Task<Void>() {
@Override
protected Void call() throws Exception {
progressPane.setVisible(true);
return null;
}
@Override
protected void succeeded(){
super.succeeded();
content.setContent(null);
ScreensController colllectScreenController = new ScreensController();
colllectScreenController.loadScreen(Screens.ADD_MEMBER);
colllectScreenController.setScreen(Screens.ADD_MEMBER);
content.setContent(colllectScreenController);
progressPane.setVisible(false);
}
};
new Thread(task).start();
}
【问题讨论】:
-
你的问题不是很清楚。您想从 MaskPane 中实现什么?什么不工作? “maskerpane 只显示 1 次”是什么意思?
-
对不起我的英语。实际上我想在切换场景时显示进度。每个场景都包含一些数据库操作。所以我想显示进度指示器。我使用的上述代码仅显示进度一次。下次它不会显示任何进度条
-
我没有看到您在任务上使用updateProgress() 来更新进度。如果您不使用它,进度指示器将永远不会显示进度。在 Task 的 javadocs 中有多个示例说明如何使用它。
-
我正在使用 MaskerPane 的显示和隐藏属性。
-
啊,我的错。我认为它应该有效。你可以试试this example 并返回它与你的代码不同的地方。
标签: javafx controlsfx