SWY CoolBarClass : CoolBar « SWT JFace Eclipse « Java

SWY CoolBarClass

SWY CoolBarClass

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.CoolBar;
import org.eclipse.swt.widgets.CoolItem;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;

public class CoolBarClass {
  static Display display;

  static Shell shell;

  static CoolBar coolBar;

  static Menu menu = null;

  public static void main(String[] args) {
    display = new Display();
    shell = new Shell(display);
    shell.setLayout(new GridLayout());
    shell.setText("CoolBar Example");
    shell.setSize(600, 200);

    coolBar = new CoolBar(shell, SWT.BORDER | SWT.FLAT);
    coolBar.setLayoutData(new GridData(GridData.FILL_BOTH));

    ToolBar toolBar1 = new ToolBar(coolBar, SWT.FLAT);
    for (int loopIndex = 0; loopIndex < 5; loopIndex++) {
      ToolItem toolItem = new ToolItem(toolBar1, SWT.PUSH);
      toolItem.setText("Button " + loopIndex);

    ToolBar toolBar2 = new ToolBar(coolBar, SWT.FLAT | SWT.WRAP);
    for (int loopIndex = 5; loopIndex < 10; loopIndex++) {
      ToolItem toolItem = new ToolItem(toolBar2, SWT.PUSH);
      toolItem.setText("Button " + loopIndex);

    CoolItem coolItem1 = new CoolItem(coolBar, SWT.DROP_DOWN);

    CoolItem coolItem2 = new CoolItem(coolBar, SWT.DROP_DOWN);

    Point toolBar1Size = toolBar1.computeSize(SWT.DEFAULT, SWT.DEFAULT);
    Point coolBar1Size = coolItem1.computeSize(toolBar1Size.x,

    Point toolBar2Size = toolBar2.computeSize(SWT.DEFAULT, SWT.DEFAULT);
    Point coolBar2Size = coolItem1.computeSize(toolBar2Size.x,

    class CoolBarListener extends SelectionAdapter {
      public void widgetSelected(SelectionEvent event) {
        if (event.detail == SWT.ARROW) {
          ToolBar toolBar = (ToolBar) ((CoolItem) event.widget)
          ToolItem[] buttons = toolBar.getItems();

          if (menu != null) {
          menu = new Menu(coolBar);
          for (int loopIndex = 0; loopIndex < buttons.length; loopIndex++) {
            MenuItem menuItem = new MenuItem(menu, SWT.PUSH);

          Point menuPoint = coolBar.toDisplay(new Point(event.x,
          menu.setLocation(menuPoint.x, menuPoint.y);

    coolItem1.addSelectionListener(new CoolBarListener());
    coolItem2.addSelectionListener(new CoolBarListener());

    while (!shell.isDisposed()) {
      if (!display.readAndDispatch())


Related examples in the same category

1.SWT CoolBar Test DemoSWT CoolBar Test Demo
2.CoolBar ExamplesCoolBar Examples
4.Coolbar Example 2
5.Coolbar Example
6.SWT ToolBar DemoSWT ToolBar Demo
7.Drop-down a chevron menu containing hidden tool itemsDrop-down a chevron menu containing hidden tool items
8.Create a coolbar (relayout when resized)Create a coolbar (relayout when resized)
9.CoolBar example snippet: create a cool barCoolBar example snippet: create a cool bar
10.Control example snippet: print mouse state and button (down, move, up)Control example snippet: print mouse state and button (down, move, up)
11.Control example snippet: print key state, code and characterControl example snippet: print key state, code and character