SWT教程1_入门.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SWT教程1 入门 一个完整的SWT程序 下面的代码是一个完整的SWT程序,该程序创建一个标准的Windows窗口应用程序。 import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class HelloSWT { ????public static void main (String[] args) { ??????? Display display = new Display(); ????????Shell shell = new Shell(display); ????????shell.open(); ????????while (!shell.isDisposed()) { ??????????? if (!display.readAndDispatch()) { display.sleep(); } ????????} ????????display.dispose(); } } SWT能够运行在多种不同的平台上,它使用平台上的窗口组件作为程序的工作及显示方式。因此在Windows平台上开发的SWT程序可以运行在Linux之上,并且在Linux上运行时其外观使用Linux的窗口主题。 ? Widget类 Widget既是SWT中所有窗口组件的抽象基类,也是SWT中一个非常重要的概念。在SWT应用程序中,窗口组件是用户与程序交互的接口。它是信息的载体。它将程序的数据呈现在图形化的窗口中,同时它自身包含一定的状态。在不同的状态下,其自身的显示也会有所不同。窗口组件还用于监听用户事件,它会根据鼠标和键盘事件改变其状态。 SWT使用平台窗口组件,因此当创建一个SWT Widget的对象时,与操作系统相关的组件将会被创建。当这些SWT对象被销毁时,相应的平台组件也会被释放。 1.创建Widget 表1列出了Widget类的构造函数。 表1????? ???????????????????????????????????????????????? ??Widget类的构造函数 构 造 函 数 描??? 述 Widget(Widget parent, int style) 创建窗口组件对象。该组件的父亲为parent,该组件的行为和外观由style决定。 Widget类是一个抽象类,它不能够被实例化。但是大部分SWT窗口组件类都继承自该类,因此这里所说的Widget类的创建时特性适用于它的子类。在大多数情况下,创建一个Widget对象需要传递一个父Widget对象。该父亲窗口组件对其孩子组件的生命周期具有一定的控制。当父亲组件消亡时,其孩子组件也消亡。不同的组件类其允许的父亲组件有所不同。比如TabItem的父亲必须是TabFolder,TreeItem的父亲可以是Tree或者TreeItem。 创建Widget实例对象时需要传递的另一个参数是style,该参数限定了组件的行为和外观。比如在创建Tree组件时,可以使用SWT.SINGLE参数,该参数说明创建的树组件中不能够同时选中多个元素;当然也可以使用SWT. MULTI参数。 在创建Widget对象时,样式参数可以是单个值, 也可以是多个样式的组合。比如在创建Tree组件时,可以使用SWT.SINGLE和SWT.CHECK的组合,后者表示树中的每一个元素都有一个勾选框。当然,在创建Tree组件时可以传入SWT.MULTI | SWT.SINGLE,虽然这在逻辑上不成立,但是不会有任何编译错误。在样式矛盾的情况下,树组件会使用SWT.SINGLE。 所有的样式都以常量的形式定义在org.eclipse.swt.SWT类中。 不同的组件有不同的样式,在SWT的Java Doc中列出了每个SWT 组件所允许的样式。在SWT中,每个组件都能够应用其父亲组件所对应的样式。 2.释放Widget 为了高效管理系统资源,SWT的设计中要求SWT程序直接管理这些资源。Widget类中提供了一个名为dispose()的方法,在SWT的开发过程中,会常和该方法打交道。该方法用于释放与组件相关的资源。 关于窗口组件的释放,有以下两个准则。 准则1 主动创建它则主动释放它 这个准则的含义是,当在程序中使用new创建了一个 组件对象,就应该调用dispose()方法来释放它。比如在HelloSWT程序的最后,display被释放就是通过调用dispose方法实现的。需要指出的是,display并不继承自Widget类,但是在组件释放的概念上,它们是一致的。 准则2 释放组件时其孩子组件也会被释放 按照准则1的概念,那么在HelloSWT程序中, 也应该调用Shell对象的dispo

文档评论(0)

80092355km + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档