标签:
Widget就是窗口小部件, 是组成用户界面的元素, 包含Menu、Item、Control等, Control是最常用的。
常用widget的结构关系如下:
1. Shell ( Widget->Control->Scrollable->Compsite->Decorations->Shell )
Shell是一个"Window", 就是当用户触发事件时弹出的窗口,是在每个窗口里最外层的"Composite",是组成图形界面的祖先Composite.
顶层的Shell 的定义是作为display的child定义的。
Shell shell = new Shell(display);
这里的display可能是parent.getDisplay( ),在单线程里可以先不用考虑display.display由UI线程创建。
2. Composite ( Widget->Control->Scrollable->Compsite )
composite作为复合控件,即在composite里可以添加其他控件(包括composite), 相当于一个盒子,里面可以放一些东西。
定义方式: Composite composite = new Composite ( parent, style );
parent代表的是父复合控件, Style 是用到SWT类里的静态整型变量,如SWT. BORDER , 使用符号 ‘|’ 间隔SWT常量可以让一个控件应用多个样式
复合控件(除了子元素是*Item的控件)若想添加别的控件,必须先布局,否则里面的控件无法显示
若想在最外层的composite添加滚动条,需要定义ScrolledComposite:
parentComposite.setLayout(new FillLayout()); //scrolledComposite 的父复合布局必须设为fillLayout
ScrolledComposite scrolledComposite = new ScrolledComposite(parentComposite, SWT.H_SCROLL|SWT.V_SCROLL);
Composite mainComposite = new Composite(scrolledComposite,SWT.NONE); //不要直接在scrolledComposite 添加控件
scrolledComposite.setContent(mainComposite); //必须有,scrolledComposite里的内容为mainComposite
.....
scrolledComposite.setExpandHorizontal(true);
scrolledComposite.setExpandVertical(true);
scrolledComposite.setMinWidth(800);
scrolledComposite.setMinHeight(400);
必须设置这4个方法滚动条才有作用 只有前两项为true,后两项才有作用
3. Button ( Widget->Control->Button )
Button button = new Button ( parent, style );
button类型如下:
标签:
原文地址:http://www.cnblogs.com/flying123/p/5016374.html