知识大全 Java GUI三剑客风云争霸

Posted 图形

篇首语:和谐、和谐,我会学习噶!本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java GUI三剑客风云争霸相关的知识,希望对你有一定的参考价值。

Java GUI三剑客风云争霸  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  进行Java GUI(Graphical User Interface 图形用户界面)编程 大家或许经常徘徊在SWT/JFACE Swing AWT之间选择 哪一个更合适自己?AWT作为Java语言的第一个GUI类库包 在这三者之间中年龄最长 可谓开国元勋 老二Swing 兼容AWT 同时又对AWT进行了改进 可谓站在前辈的肩膀上 自然就会看的远了 老三SWT/JFace 则只能用不走寻常路来形容它 SWT/JFace采取了与AWT和Swing完全不同的技术路线 这三剑客之间 究竟孰优孰劣 且听下文分解 穷途末路的AWT     AWT(Abstract Windowing Toolkit) 中文译为抽象窗口工具包 是Java提供的用来建立和设置Java的图形用户界面的基本工具 AWT由Java中的java awt包提供 里面包含了许多可用来建立与平台无关的图形用户界面(GUI)的类 这些类被称为组件(ponents)     抽象窗口工具包 (Abstract Windowing Toolkit) (AWT)是Java的平台独立的窗口系统 图形和用户界面器件工具包 AWT是Java基础类 (JFC)的一部分 为Java程序提供图形用户界面(GUI)的标准API     AWT提供了Java Applet和Java Application中可用的用户图形界面GUI中的基本组件(ponents) 由于Java是一种独立于平的程序设计语言 但GUI却往往是依赖于特定平台的 Java采用了相应的技术使得AWT能提供给应用程序独立于机器平台的接口 这保证了同一程序的GUI在不同机器上运行具有类似的外观(不一定完全一致)     抽象窗口工具包AWT (Abstract Window Toolkit) 是 API为Java 程序提供的建立图形用户界面GUI (Graphics User Interface)工具集 AWT可用于Java的applet和applications中 它支持图形用户界面编程的功能包括 用户界面组件 事件处理模型 图形和图像工具 包括形状 颜色和字体类 布局管理器 可以进行灵活的窗口布局而与特定窗口的尺寸和屏幕分辨率无关 数据传送类 可以通过本地平台的剪贴板来进行剪切和粘贴     然而 Java推出的时候 AWT作为Java最弱的组件受到不小的批评 最根本的缺点是AWT在原生的用户界面之上仅提供了一个非常薄的抽象层 例如 生成一个AWT的复选框会导致AWT直接调用下层原生例程来生成一个复选框 不幸的是 一个Windows平台上的复选框同MacOS平台或者各种UNIX风格平台上的复选框并不是那么相同 这种糟糕的设计选择使得那些拥护Java 一次编写 到处运行 (write once run anywhere) 信条的程序员们过得并不舒畅 因为AWT并不能保证他们的应用在各种平台上表现得有多相似 一个AWT应用可能在Windows上表现很好 可是到了Macintosh上几乎不能使用 或者正好相反 在 年代 程序员中流传着一个笑话:Java的真正信条是 一次编写 到处测试 (write once test everywhere) 导致这种糟糕局面的一个可能原因据说是AWT从概念产生到完成实现只用了一个月     在第二版的Java开发包中 AWT的器件很大程度上被Swing工具包替代 Swing通过自己绘制器件而避免了AWT的种种弊端 Swing调用本地图形子系统中的底层例程 而不是依赖操作系统的高层用户界面模块 Swing的出现 宣告了AWT的穷途末路 目前几乎看不到AWT在GUI上的应用了

   Swing——想说爱你不容易     Java Swing是Java Foundation Classes(JFC)的一部分 它是试图解决AWT缺点的一个尝试 从这一点上来说 Swing可以说是站在前人(以AWT的表现 实在很难称之为巨人)的肩膀上了 SWING解决了AWT的很多缺点 相对于AWT Swing是轻量级元件 SWING 提供许多比AWT更好的屏幕显示元素 它们用纯Java写成 所以同Java本身一样可以跨平台运行 这一点不像AWT 它们是JFC的一部分 它们支持可更换的观感和主题(各种操作系统默认的特有主题) 然而Swing不是真的使用原生平台提供的设备 而是仅仅在表面上模仿它们 这意味着你可以在任意平台上使用JAVA支持的任意观感 轻量级元件的缺点则是执行速度较慢 优点就是可以在所有平台上采用统一的行为     在Swing 中 Sun 开发了一个经过仔细设计的 灵活而强大的 GUI 工具包 其中大量应用了MVC模式 这大大增加了Swing的灵活性 笔者曾经做过一个大型的大型C/M/S(Client/Middleware/Server)项目 其中客户端UI采用的就是Swing 可以说 Swing几乎可以实现所有的你能够想到效果 只要你技术足够精湛 都可以实现 这也许在某些高手看来 是Swing一个很明显的优势 然而Swing的这种设计确苦了Java的初学者或者面向对象程序设计造诣不深的程序员 灵活就意味这功能强大 功能强大就意味着复杂 对于一般的程序员来说 Swing太复杂了 以至于他们在还不了解Swing的时候就已经放弃了选择Swing 或者失去净下心来继续学下去的毅力 最后写出来的只能是一堆垃圾代码     如果说功能强大但是过于复杂会让人对Swing想爱确不知道怎么去爱的话 那么Swing的低效则会让大多数的程序员感叹——Swing 想说爱你不容易 由于Swing是轻量级组件 因此Swing中的每一个组件都是采用Java身的画点 画线的函数画出来的 并没有调用操作系统组件 Java字节码的运行速度大概是同等条件下C/C++语言程序运行速度的 / ~ / 于是 采用JBuilder进行开发的朋友们经常可以看到JBuilder灰屏(窗体上组件还没有画出来)的景象 正是因为Swing的蜗牛速度 因此在Java推出这么多年来 很少能够看见比较成熟的Swing桌面应用(JBuilder算是其中最成功的一个了 但是现在随着Eclipse的崛起 JBuilder的发展也是举步维艰)     总之 Swing在AWT的基础上很好的解决了跨平台观感不一的问题 并且提供了比AWT更为丰富的组件(AWT连树形控件 表格控件都没有)和强大的功能 却因为其过于复杂难以上手和让人无法接受的速度让广大程序员对其失去了好感 这不能不让人惋惜

   SWT/JFace——众里寻她千百度     就在Java在中间件市场(J EE)以及web应用(JSP/Sevlet)上大放异彩的时候 AWT的穷途末路 Swing的饱受病诟 这一切似乎让Java的GUI开发沉寂的像一潭死水 寻寻觅觅 冷冷清清 凄凄惨惨戚戚啊! SWT/JFace象一股清新的风吹入了Java的GUI开发领域 为这个沉闷的领域带来了勃勃生机 虽然SUN不接纳SWT/JFace作为Java中的一种图形API标准 但它虽然借着Eclipse的优异表现 以不可阻挡之势向前发展着 终于可以用SWT/JFace轻松的开发出高效率的GUI程序 且拥有标准的Windows外观 Eclipse软件就是基于SWT/JFace构建的 大家看看Eclipse 就知道SWT有多么的棒

  图 SWT/JFace的代表作——Eclipse界面

cha138/Article/program/Java/ky/201311/28231

相关参考

知识大全 Java标准输出重定向到GUI

Java标准输出重定向到GUI  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  实现输出从控制台到

知识大全 Java GUI用户界面编程的基础

JavaGUI用户界面编程的基础  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java的GUI

知识大全 如何设计出有GUI特色的“纯”JAVA程序

如何设计出有GUI特色的“纯”JAVA程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  现在J

知识大全 Java GUI的发展和演化简史

JavaGUI的发展和演化简史  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  当Java在年的春

知识大全 浅析Java内部类在GUI设计中的作用(1)

浅析Java内部类在GUI设计中的作用(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  对于

知识大全 浅析Java内部类在GUI设计中的作用(2)

浅析Java内部类在GUI设计中的作用(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  四方

知识大全 剑客vs刀客 Java vs .NET之霸道的.NET

剑客vs刀客Javavs.NET之霸道的.NET  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!出处

知识大全 Java GUI中布局管理器的使用

JavaGUI中布局管理器的使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishixinzh

知识大全 Java实现把汉字转化成拼音

Java实现把汉字转化成拼音  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  GUI代码部分  /

知识大全 基&

  一SWT简介    Java语言的声望和它在桌面应用程序(GUI程序)所取得的成就显然极不相符至今仍然很少能看到非常成功Java桌面程序虽然有JBuilderNetbeanJProbe等大型软件作