ExpandBar Tutorial - ecsoya/eclipse.tutorial GitHub Wiki

ExpandBar是一个可展开和收缩的组件,以前的Windos XP系统中文件管理器的左侧栏中就用这种组件。SWT中是通过org.eclipse.swt.widgets.ExpandBarExpandItem来实现的。

先看一段示例:

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

	shell.setText("ExpandBar Tutorial");
	shell.setSize(300, 200);

	shell.setLayout(new FillLayout());

	final Image taskImage = new Image(display,
			ExpandBarTutorial.class.getResourceAsStream("task.gif"));

	ExpandBar expandBar = new ExpandBar(shell, SWT.NONE);

	ExpandItem item1 = new ExpandItem(expandBar, SWT.NONE);
	item1.setText("Expanded item");
	Composite control = new Composite(expandBar, SWT.NONE);
	control.setLayout(new RowLayout(SWT.VERTICAL));
	new Label(control, SWT.NONE).setImage(display
			.getSystemImage(SWT.ICON_INFORMATION));
	new Label(control, SWT.NONE).setImage(display
			.getSystemImage(SWT.ICON_ERROR));
	item1.setControl(control);
	item1.setHeight(control.computeSize(SWT.DEFAULT, SWT.DEFAULT).y);
	item1.setExpanded(true);
	item1.setImage(taskImage);

	ExpandItem item2 = new ExpandItem(expandBar, SWT.NONE);
	item2.setText("Collapsed item");
	control = new Composite(expandBar, SWT.NONE);
	control.setLayout(new RowLayout(SWT.VERTICAL));
	new Label(control, SWT.NONE).setImage(display
			.getSystemImage(SWT.ICON_WORKING));
	new Label(control, SWT.NONE).setImage(display
			.getSystemImage(SWT.ICON_QUESTION));
	item2.setControl(control);
	item2.setHeight(control.computeSize(SWT.DEFAULT, SWT.DEFAULT).y);
	item2.setImage(taskImage);

	shell.open();

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

如图:

images/image_swt_expandbar.png

要点

ExpandItem

  1. setText():设置Item上面显示的文字。
  2. setImage():设置Item上面显示的图片。
  3. setExpand():设置Item的展开状态,默认为收起来的。
  4. setHeight():设置Item的内容展开后的高度,默认为0,此项一定要设置,否则即便展开,也看不见里面的内容。

ExpandBar

  1. SWT.V_SCROLL:允许加一个垂直的滚动条。
  2. setSpacing():设置每一个Item之间的距离。
  3. ExpandListener:添加事件,当ExpandItem展开或是收起的时候触发。

参考资料:


上一篇:TaskBar Tutorial 下一篇:Menu Tutorial