知识大全 技术分析:使用Eclipse进行SWT编程(图)

Posted

篇首语:少成若天性,习惯如自然。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 技术分析:使用Eclipse进行SWT编程(图)相关的知识,希望对你有一定的参考价值。

技术分析:使用Eclipse进行SWT编程(图)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   The best way to predict the future is to invent it —Alan Kay     为什么要使用SWT?    SWT是IBM开发一套跨平台的GUI开发框架 为什么IBM要创建另一种GUI呢?为什么他们不使用现有的Java GUI框架呢?要回答这些问题 我需要回到Java的早期时代     Sun已经创建了一套跨平台的GUI框架 AWT (Abstract Windowing Toolkit) 这个AWT框架使用了本地窗口组件(native widgets)不过它存在LCD问题 这个LCD问题导致了它失去主要的平台特性 换句话说 如果平台A有窗口组件 - 而平台B有窗口组件 - 那么这个跨平台的AWT框架只能提供这两个集合的交集     为了解决这个问题 Sun创建了一个新的框架使用模拟窗口组件(emulated widgets)来代替本地窗口组件(native widgets) 这个方法解决了LCD问题同时提供了丰富的窗口组件 不过也产生了其他的问题 例如 Swing应用程序不再和本地程序在样子上一致 虽然JVM有了很大的改善 但是Swing应用程序仍然存在它们本地配对物所没有的性能问题 而且 Swing应用程序消耗了太多的内存 故不适合用于PDA和移动电话等小型设备     IBM发现这些方法都无法满足他们的需求 因此 IBM创建了新的GUI库叫做SWT 它解决了AWT和Swing框架中的问题 SWT框架使用JNI访问本地窗口组件(native widgets) 如果一个窗口组件在主机平台上不能获得 那么SWT会模拟这个不能获取的窗口组件      一个SWT应用程序的基础材料    Display Shell和Widgets是一个SWT应用程序的基础材料 Displays用于管理事件循环(event loops)和控制UI线程和其他线程之间的通讯 Shell是应用程序中由操作系统窗体管理器来管理的窗体 任何SWT应用程序都需要至少一个Display实例和 个或更多的Shell实例    >  图 说明了一个SWT应用程序的不同看法 第一幅图是简化的UI对象的继承图 第二幅图是UI对象的包含结构 第三幅图就是创建了的UI     如果一个应用程序使用多个线程 每个线程使用自己的Display对象实例 那么你可以通过使用静态的Display getCurent()方法得到当前活跃的Display对象实例     一个Shell表示一个特别操作系统中的一个窗口 一个Shell可以最大化 正常化 和最小化 有两种类型的shell 一种是顶层(top level)Shell作为Display的主窗口创建的 另一种是依赖于其他shell的对话shell     Shell的类型是由传给Shell构造函数的style位决定的 Shell的默认值是对话Shell 也就是说 如果没有传递任何值给构造函数参数 那么创建的是默认的对话Shell 如果一个Display对象作为参数 那么它是顶层(top level)Shell     有些窗口组件(widget)的属性必须在创建时设定 这些窗口组件(widget)属性叫做style bits Style bits是在SWT类中定义的常量 如Button button = new Button( shell ) 当然可以通过或操作|来使用多个style bit 例如 要使用一个有边的按钮 你需要使用SWT PUSH | SWT BORDER作为style bit参数      环境设置    开发一个SWT应用程序与开发一个Swing应用程序不同 为了可以开始一个SWT应用程序的开发 你需要把SWT库加到classpath中 同时设置好对应的必要的环境变量     第一个需要的库是swt jar文件 它位于ECLIPSE_HOME\\eclipse\\plugins\\ eclipse swt win _ \\ws\\win 目录 根据你使用的Eclipse版本 你可能需要使用不同的目录 这个swt jar文件必须加到你的classpath中 为此到Project >Properies >JavaBuildPath >Libraries >Add Variable > Eclipse Home >Extend并按上述路径选择swt jar库 然后单击OK     然后 你可以编译SWT应用程序 但是由于抛出下边所示的运行时异常 无法运行它 因为swt jar使用了本地库 你需要设置java library path环境变量来在Java中使用本地库    >  要设置java library path变量 到Run > Run > Java Applicaton > New >Arguments > VM Arguments 然后 如何需要 如下修改path 把它粘贴到VM Arguments部分 Djava library path=c:\\eclipse\\plugins\\ eclipse swt win _ \\os\\win \\x     装载本地库    如果你需要装载应用程序使用的任何本地库 你可以使用Runtime getPlatform loadLibrary( libraryname )方法     完成这些步骤 你就可以在你的eclipse环境下运行SWT程序了      你的第一个SWT应用程序    创建一个典型的SWT应用程序需要一下步骤     创建一个Display    创建一个或多个Shells    设置Shell的Layout manager    创建Shell中的widgets    开启Shell窗口    写一个事件转发循环    销毁display    你可以使用下边的代码模板来快速的运行本文中的代码片断 你可以复制粘贴这些代码至合适的区域 如源代码 所示    >  这个例子显示了一个空的窗口 你可以加widget到上边的模板 任何SWT应用程序需要 一个Display和一个或多个 Shells 这个Shell是个合成对象;它可以容纳其他的合成对象 如果没有设置shell的 layout 加到Shell的widget是不能看见的 Shell窗口必须 打开才能显示 事件处理循环读取并转发GUI事件 如果没有事件处理循环应用程序窗口是无法显示的 即使通过open()方法来打开Shell窗口 让后 需要在Shell被丢弃的时候销毁 Display      导入需要的库    你可以使用Source >Organize Imports菜单或者Ctrl+Shift+O来自动导入需要的库 cha138/Article/program/Java/ky/201311/28075

相关参考

知识大全 在Eclipse中使用SWT进行界面设计

在Eclipse中使用SWT进行界面设计  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  为什么要

知识大全 技术分享 配置Eclipse进行远程调试二(图)

技术分享配置Eclipse进行远程调试二(图)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  配

知识大全 Eclipse下配置swt开发环境

Eclipse下配置swt开发环境  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  创建存储过程的

知识大全 Eclipse中用SWT和JFace开发入门

Eclipse中用SWT和JFace开发入门  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!可以使用

知识大全 使用Eclipse SWT控件开发WEB应用

使用EclipseSWT控件开发WEB应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Smart

知识大全 SWT事件

Eclipse开发经典教程:SWT事件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在窗口系统中程

知识大全 Java编程那些事儿13——Eclipse基本使用[1]

Java编程那些事儿13——Eclipse基本使用[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 Java编程那些事儿13——Eclipse基本使用[2]

Java编程那些事儿13——Eclipse基本使用[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 Java编程那些事儿14——Eclipse基础使用进阶

Java编程那些事儿14——Eclipse基础使用进阶  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 关于Eclipse插件开发之定制向导(图)

关于Eclipse插件开发之定制向导(图)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Inv