在CoolBar中放置CoolItem,在CoolItem中再放置ToolBar,在ToolBar中再放置ToolItem。
并不是将控件绑定到CoolItem上就可以显示控件了,
还需要计算控件合适的大小,重置CoolItem的大小
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.*;
public class D{
public static void main(String[] args){
Display display=new Display();
Shell shell=new Shell(display);
shell.setText("可拖动工具栏CoolBar和可拖动工具栏项CoolItem");
shell.setLayout(new GridLayout());
//新建一个可拖动工具栏
CoolBar coolBar=new CoolBar(shell,SWT.FLAT);
//创建一个可拖动工具项
CoolItem coolItem=new CoolItem(coolBar,SWT.None);
//创建一个工具栏——在可拖动栏中创建
ToolBar toolBar=new ToolBar(coolBar,SWT.FLAT);
//创建工具项——在工具栏中
ToolItem filetoolItem=new ToolItem(toolBar,SWT.None);
filetoolItem.setText("文件");
ToolItem viewtoolItem=new ToolItem(toolBar,SWT.None);
viewtoolItem.setText("视图");
toolBar.pack();
//可拖动工具项绑定工具栏
coolItem.setControl(toolBar);
//绑定的话,一定要计算合适的大小
//获得工具栏的大小
Point toolBarPoint=toolBar.getSize();
//获得可拖动工具项的合适大小
Point preferredPoint=coolItem.computeSize(toolBarPoint.x+100, toolBarPoint.y+30);
//将可拖动工具项设置为合适的大小
coolItem.setPreferredSize(preferredPoint);
//创建一个可拖动工具项
CoolItem coolItem2=new CoolItem(coolBar,SWT.None);
//创建一个工具栏——在可拖动栏中创建
ToolBar toolBar2=new ToolBar(coolBar,SWT.FLAT);
//创建工具项——在工具栏中
ToolItem filetoolItem2=new ToolItem(toolBar2,SWT.None);
filetoolItem2.setText("文件");
ToolItem viewtoolItem2=new ToolItem(toolBar2,SWT.None);
viewtoolItem2.setText("视图");
toolBar2.pack();
//可拖动工具项绑定工具栏
coolItem2.setControl(toolBar2);
//绑定的话,一定要计算合适的大小
//获得工具栏的大小
Point toolBarPoint2=toolBar2.getSize();
//获得可拖动工具项的合适大小
Point preferredPoint2=coolItem2.computeSize(toolBarPoint2.x+200, toolBarPoint2.y);
//将可拖动工具项设置为合适的大小
coolItem2.setPreferredSize(preferredPoint2);
coolBar.pack();
Text content=new Text(shell,SWT.MULTI);
content.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
//打开窗口,进行窗口的显示
shell.setSize(400,400);
//shell.pack();
shell.open();
while(!shell.isDisposed()){
//当窗口没有被释放的时候
if(!display.readAndDispatch()){
display.sleep();
}
}
display.dispose();
}
}