站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Java 专题SWT代码研究(2)

SWT代码研究(2)

摘要: SWT代码研究(2)
内容:

from skyhit的blog: http://www.matrix.org.cn/blog/skyhit


SWT代码研究(2)


import org.eclipse.swt.*;
import org.eclipse.swt.widgets.*;
public class SWTHello {
public static void main(String[] args) {
/*
* Display的实例用于管理SWT与底层操作系统的连接,其
* 最重要的功能是根据平台的事件处理模型实现SWT的event
* loop,一般来说,只要一个Display的实例就可以了。
* 注意,在创建任何window前(Shell实例)需创建Display实例,
* 在Shell实例关闭时除掉Display实例
*/
Display display = new Display();


 


/*
*Shell是作为主窗口
*/
Shell shell = new Shell(display);
/*
* SWT.NONE是Sytle bit,用于表明widget的style
*/
Label label = new Label(shell,SWT.NONE);
label.setText("Hello");
shell.pack();
label.pack();
shell.open();
while(!shell.isDisposed())
{
if(!display.readAndDispatch())
display.sleep();
}
shell.dispose();
}
}


关于Resource的Disposal
1、如果你用构造函数创建了widget或者graphic对象,当你不需要时你必须手动地dispose掉它;
2、如果你不是使用构造函数得到这个widget或者graphic对象,由于不是你allocate的,你不需要手动来dispose掉它;
3、如果你传递一个widget或者graphic对象的reference给另一个对象,那么你必须小心,不要在它仍在被使用中就dispose掉它;
4、当你close掉一个shell,那么这个shell及其子widget会被递归dispose掉的,虽然你不需再dispose掉那些widget,但是你必须free掉与这些widget相关的图像资源;
5、如果在一个widget的生命期中创建了graphic对象,可以通过注册一个dispose listener来free这个graphic对象,不过数据对象如Rectangle和Point没有使用操作系统资源,不用手动dispose(它们也没有dispose方法).

Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
↑返回目录
前一篇: 一个读取xml文件内容的类
后一篇: SWT代码研究(1)