import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
public class PopToolbar extends Composite{
public PopToolbar(Composite parent) {
super(parent, SWT.NONE);
// TODO Auto-generated constructor stub
Composite composite = new Composite(this, SWT.NONE);
composite.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, true, false));
final ToolBar toolBar = new ToolBar(composite, SWT.FLAT | SWT.SHADOW_OUT); //新建一个工具栏
ToolItem saveTool = new ToolItem(toolBar, SWT.PUSH); //添加一个工具项
saveTool.setText("save");
saveTool.setToolTipText("save");
final ToolItem helpTool = new ToolItem(toolBar, SWT.DROP_DOWN); //下拉菜单,样式为SWT.DROP_DOWN
helpTool.setText("Help");
saveTool.setToolTipText("Help");
final Menu helpMenu = new Menu(this); //弹出菜单,
MenuItem welcomItem = new MenuItem(helpMenu, SWT.PUSH);
welcomItem.setText("welcome");
//分割线
new MenuItem(helpMenu, SWT.SEPARATOR); //菜单项之间的分割线
MenuItem updateItem = new MenuItem(helpMenu, SWT.PUSH);
updateItem.setText("update");
@Override
public void handleEvent(Event event) {
// TODO Auto-generated method stub
if (event.detail == SWT.ARROW) //收到事件时判断是否是点击了下拉箭头
{
Rectangle rect = helpTool.getBounds();
Point pt = new Point(rect.x, rect.y +rect.height);
pt = toolBar.toDisplay(pt);
helpMenu.setLocation(pt.x, pt.y);
helpMenu.setVisible(true);
}
}
});
toolBar.pack();
composite.pack();
}
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
public class PopToolbar extends Composite{
public PopToolbar(Composite parent) {
super(parent, SWT.NONE);
// TODO Auto-generated constructor stub
Composite composite = new Composite(this, SWT.NONE);
composite.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, true, false));
final ToolBar toolBar = new ToolBar(composite, SWT.FLAT | SWT.SHADOW_OUT); //新建一个工具栏
ToolItem saveTool = new ToolItem(toolBar, SWT.PUSH); //添加一个工具项
saveTool.setText("save");
saveTool.setToolTipText("save");
final ToolItem helpTool = new ToolItem(toolBar, SWT.DROP_DOWN); //下拉菜单,样式为SWT.DROP_DOWN
helpTool.setText("Help");
saveTool.setToolTipText("Help");
final Menu helpMenu = new Menu(this); //弹出菜单,
MenuItem welcomItem = new MenuItem(helpMenu, SWT.PUSH);
welcomItem.setText("welcome");
//分割线
new MenuItem(helpMenu, SWT.SEPARATOR); //菜单项之间的分割线
MenuItem updateItem = new MenuItem(helpMenu, SWT.PUSH);
updateItem.setText("update");
// 为下拉工具栏注册单击下拉箭头事件
helpTool.addListener(SWT.Selection, new Listener(){@Override
public void handleEvent(Event event) {
// TODO Auto-generated method stub
if (event.detail == SWT.ARROW) //收到事件时判断是否是点击了下拉箭头
{
Rectangle rect = helpTool.getBounds();
Point pt = new Point(rect.x, rect.y +rect.height);
pt = toolBar.toDisplay(pt);
helpMenu.setLocation(pt.x, pt.y);
helpMenu.setVisible(true);
}
}
});
toolBar.pack();
composite.pack();
}
}
Menu types:SWT.CHECK, SWT.RADIO
SWT.CASCADE, SWT.PUSH