SWT 全接触
2009-12-14 00:00:00 来源:WEB开发网Composite
可以包含其它Composite和Control的容器
Control
这是一个重量级(HeavyWeight)系统对象。像按钮(Button),标签(Label),表格,工具栏和树形结构这些组件都是Control的子类,Conposite和Shell也不例外。
2.1.1 消息循环
我们可以看到,上面的代码中有这样的语句:
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
display.sleep ();
}
如果你像我一样是由Java语言起步的,那么你会对这个消息循环的代码感到比较陌生,毕竟在SWING中我们主要利用事件驱动模型而不这样利用类似于Windows程序设计中的消息循环的方法来处理事件。但是这段代码意义还算简单明了,就是反复的读取和分派(dispatch)事件,并在没有事件的时候把控制权还给CPU。
2.1.2 资源的释放
最后一条语句是display.dispose ();,这告诉我们操作系统的资源是由程序员显示释放的。资源的释放遵循以下两条规则:
1. 如果你创建了某个资源,那么你就有责任释放它。
2. 释放父组件资源的同时也释放了其子组件的资源。
2.1.3 标准构造函数
窗口组件被创建的时候必须伴随一个他的上层组件,例如,我要建立一个按钮就可以采用如下方法:Button button = new Button(shell, SWT.PUSH);
其中,Button的父组件Shell是必不可少的,这样就限定了我们生成组件的顺序。
第二个参数被称为"Style Bit",表示了这个组件的显示特性,每种特性占一位,如下例所示:
Text test=new Text(group, SWT.SINGLE|SWT.BORDER);
这条代码生成了一个单一的,有边框的文本框。这显然又与习惯了JavaBeans模型,总是用setXXX()来设置属性的我们不太适应--毕竟是IBM的东西啊,秉承了其产品不易上手的传统。
更多精彩
赞助商链接