ProgressBar Tutorial - ecsoya/eclipse.tutorial GitHub Wiki

进度条(ProgressBar)除了可以是水平的(SWT.HORIZONTAL)也可以是垂直的(SWT.VERTICAL)之外,有两种分格,一种是SWT.SMOOTH,还有一种是SWT.INDETERMINATE,默认情况是SWT.SMOOTH

  • SWT.SMOOTH进度条可以设置最大值,最小值以及当前的进度(Selection),只有进度值发生变化时,进度条才会更新。
  • SWT.INDETERMINATE进度条会一直滚动显示,最大值,最小值和进度值都对它无效。

先看一段示例:

	final Display display = new Display();
	final Shell shell = new Shell(display);

	shell.setText("ProgressBar Tutorial");
	shell.setSize(315, 200);

	shell.setLayout(new GridLayout(2, false));

	// SWT.DEFAULT | SWT.SMOOTH
	final ProgressBar smoothBar = new ProgressBar(shell, SWT.SMOOTH);
	smoothBar.setMaximum(100);
	smoothBar.setSelection(30);

	new Label(shell, SWT.NONE).setText("SWT.SMOOTH");

	// SWT.INDETERMINATE
	new ProgressBar(shell, SWT.INDETERMINATE);
	new Label(shell, SWT.NONE).setText("SWT.INDETERMINATE");

	shell.open();

	while (!shell.isDisposed()) {
		if (!display.readAndDispatch()) {
			display.sleep();
		}
	}
	display.dispose();

如图:

images/image_swt_progressbar.png

State

ProgressBar在有些系统中(如Windows 7和Mac OS)支持三种类型的状态:SWT.NORMALSWT.ERRORSWT.PAUSED。一般情况下会在TaskBar上面以不同的颜色同步显示进度。


参考资料:


上一篇:CoolBar Tutorial 下一篇:ScrollBar Tutorial