CoolBar Tutorial
CoolBar和ToolBar有点类似,一般都是用在创建工具栏上,不过,CoolBar的功能更加丰富,CoolItem可以在CoolBar上面自由的拖拽,隐藏等等。它是由org.eclipse.swt.widgets.CoolBar和org.eclipse.swt.widgets.CoolItem实现的
我们先看一个简单的示例吧:
    Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setText("CoolBar Tutorial");
    shell.setSize(300, 200);
    shell.setLayout(new RowLayout());
    final Image taskImage = new Image(display,
            CoolBarTutorial.class.getResourceAsStream("task.gif"));
    final CoolBar coolBar = new CoolBar(shell, SWT.HORIZONTAL | SWT.FLAT);
    for (int i = 0; i < 5; i++) {
        CoolItem item = new CoolItem(coolBar, SWT.NONE);
        Button control = new Button(coolBar, SWT.NONE);
        control.setImage(taskImage);
        control.setText("Button - " + i);
        item.setControl(control);
        Point size = control.computeSize(SWT.DEFAULT, SWT.DEFAULT);
        item.setPreferredSize(item.computeSize(size.x, size.y));
    }
    coolBar.setWrapIndices(new int[] { 1, 3 });
    coolBar.pack();
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch()) {
            display.sleep();
        }
    }
    taskImage.dispose();
    display.dispose();
如图:

要点
CoolBar
- Orientation:CoolBar也分为水平的(SWT.HORIZONTAL)和垂直(SWT.VERTICAL)的两种。
- SWT.FLAT:没有设置的话,CoolBar会有带系统默认的背景色,否则没有。
- setLock():设置CoolItem是否锁定,默认为不锁定,如上述示例中的CoolItem就可以拖拽移动;一旦锁定,就不能移动。
- setWrapIndices():设置要换行的CoolItem的索引值,默认会将所有的CoolItem显示在同一行。如上述示例中设置了new int[] { 1, 3 },就是说遇到第1个和第3个CoolItem的时候换行显示。
CoolItem
- Size:CoolItem的大小一定要自己设置,其中有三个概念,setMinimumSize(),setPreferredSize()和setSize(),并且这些值的默认都是0。最小值是在缩放CoolItem的时候会用到,size如果没有设置,就取PreferredSize,如果都没有设置,则CoolItem就不会显示。
- SWT.DROP_DOWN:下拉菜单。
- SelectionListener:选择下拉菜单按钮时触发。
关于2和3,请看示例:drop-down a chevron menu containing hidden tool items
参考资料:
  * CoolBar snippets
  * 如果想了解更多的关于设置颜色,字体等其它属性的相关内容,请移步至控件的通用设置
  * 如果想了解更多的关于Layout和LayoutData的相关内容,请移步至布局管理器
  * SWT Example: ControlExample
  * Sample code and further information
Back to Home 上一篇:ToolBar Tutorial 下一篇:ProgressBar Tutorial