progressBar 进度条
progressBar
用于展示一个进程的完成情况。进度可以是确定的(即,能确定进度的百分比)或不定的。用 progressBar
显示需要长时间处理的任务的进度。
-
XML 元素:
progressBar
-
Java 类:
ProgressBar
可确定的进度
默认情况下,progressBar
以 可确定 的模式展示进度。这种模式下可以给用户实际完成的进度情况,并能推断还需多少时间才能完成,也就是说,此时的进度指示器会根据从进程中获取的数值变化。
下面是展示 后台任务 进度的示例:
<progressBar id="progressBar"/>
@ViewComponent
protected ProgressBar progressBar;
@Autowired
protected BackgroundWorker backgroundWorker;
private static final int ITERATIONS = 6;
@Subscribe
protected void onInit(InitEvent event) {
BackgroundTask<Integer, Void> task = new BackgroundTask<Integer, Void>(100) {
@Override
public Void run(TaskLifeCycle<Integer> taskLifeCycle) throws Exception {
for (int i = 1; i <= ITERATIONS; i++) {
TimeUnit.SECONDS.sleep(1); (1)
taskLifeCycle.publish(i);
}
return null;
}
@Override
public void progress(List<Integer> changes) {
double lastValue = changes.get(changes.size() - 1);
progressBar.setValue(lastValue / ITERATIONS); (2)
}
};
BackgroundTaskHandler taskHandler = backgroundWorker.handle(task);
taskHandler.execute();
}
1 | 一些比较耗时的任务 |
2 | 设定组件的值,值必须是 double 类型,且在 0.0 和 1.0 之间 |
非确定进度
progressBar
的非确定进度模式会展示一个循环播放的进度条,而非一个特定的进度值。这种模式可以用来展示无法确定进度的任务。
如需使用该模式,设置 indeterminate
属性为 true
。
<progressBar id="indeterminateProgressBar" indeterminate="true"/>
XML 属性
id - classNames - colspan - height - indeterminate - max - maxHeight - maxWidth - min - minHeight - minWidth - themeNames - value - visible - width
事件和处理器
在 Jmix Studio 生成处理器桩代码时,可以使用 Jmix UI 组件面板的 Handlers 标签页或者视图类顶部面板的 Generate Handler 添加,也可以通过 Code → Generate 菜单(Alt+Insert / Cmd+N)生成。 |
本页是否有帮助?
感谢您的反馈