`
tkxhw29a
  • 浏览: 13115 次
最近访客 更多访客>>
sik
社区版块
存档分类
最新评论

组件介绍

 
阅读更多

组件介绍
2009年11月22日
  网站首页 社区首页 新闻首页 书籍教程 视频教程 JAVA技术 .NET开发 C/C++ 数据库 WEB开发 linux 软件测试 在线试题 博 客 进入论坛
  软件编程 C C++ Java VB Delphi Foxpro 汇编语言 游戏开发 移动开发 软件工程师 软工与管理 VC shell编程 用户名:
  密  码: 
  验证码:
  JAVA J2EE J2ME J2SE JSP C/C++ C语言 C++ VC MFC Web前台 Html css JavaScript 软件测试 软件测试入门 LoadRunner Windows Win2008 Win2003 WinXP .NET ASP.NET VB.NET MVC Linux/Unix Linux Unix Shell Web开发 PHP ASP Ajax IIS Apache 编程语言 C VB Delphi 汇编 数据库 MSSQL Mysql Oracle??.Net视频教程DVD 7张 26G 120元 ??尚学堂+j2ee+赛迪+传智播客 23 DVD ??达内培训视频教学光盘DVD 6张 90元 ??Oracle视频教程9i 4 DVD 50元
  DIY部落 >> java >> Java实例教程 >>  正文
  Java GUI:SWT/Swing/AWT的介绍及比较
  www.diybl.com 时间:2008-01-29 作者:佚名 编辑:本站 点击: 939 [评论]
  -
  -
  本文通过对 Eclipse 的 SWT 和 Java Swing、Abstract Windows Toolkit(AWT)GUI 工具包进行比较,可以帮助新应用程序的开发人员从中选择适当的工具。
  您可以通过本文了解对每个工具包的基本特性的介绍,以及使用每个工具包的优缺点。
  简介
  developerWorks 上另外一些作者已经展示了如何在 Swing 和 SWT 之间很好地进行迁移(参见 参考资料)。本文的目标是帮助您在开始开发项目之前确定选择使用哪个 GUI 工具包。
  但是首先我们要弄清一个问题:为什么会有多个 Java™ GUI 工具包呢?最好的答案是,一个工具包并不能满足所有的要求,最近也不会开发一个可以满足所有要求的 GUI 工具包。每个工具包都有各自的优缺点,这样就可以根据自己的需求和目标用户来选择适当的工具包。
  下面就让我们来学习有关这些工具包的知识。
  AWT 概述
  Abstract Windows Toolkit(AWT)是最原始的 Java GUI 工具包。AWT 的主要优点是,它在 Java 技术的每个版本上都成为了一种标准配置,包括早期的 Web 浏览器中的 Java 实现;另外它也非常稳定。这意味着我们不需要单独安装这个工具包,在任何一个 Java 运行环境中都可以使用它,这一点正是我们所希望的特性。
  AWT 是一个非常简单的具有有限 GUI 组件、布局管理器和事件的工具包(参见 清单 1、清单 2 和 清单 3)。这是因为 Sun 公司决 定为 AWT 使用一种最小公分母(LCD)的方法。因此它只会使用为所有 Java 主机环境定义的 GUI 组件。最终的结果非常不幸,有些经常使用的组件,例如表、树、进度条等,都不支持。对于需要更多组件类型的应用程序来说,我们需要从头开始创建这些组件。 这是一个很大的负担。
  清单 1. 基本的 AWT Class 树(全部在 java.awt 包中, “*” 表示抽象)
  Object CheckboxGroup *Component Button Canvas CheckBox Choice Container Panel Applet ScrollPane Window Dialog Frame Label List TextComponent TextArea TextField MenuComponent MenuItem CheckboxMenuItem Menu PopupMenu
  注意:另外几个包中还有其他一些 AWT 组件,但是这是基本的组件集。
  清单 2. AWT 提供了下面的布局管理器(全部在 java.awt 包中,“*” 表示接口)
  *LayoutManager FlowLayout GridLayout *LayoutManager2 BorderLayout CardLayout GridBagLayout
  注意:另外几个包中还有一些 AWT 布局管理器,很多都是为它们进行布局的容器专门定制的,但是这是基本的布局管理器集。
  清单 3. AWT 提供了以下事件(大部分在 java.awt.events 包中)
  Object EventObject AWTEvent ActionEvent AdjustmentEvent ComponentEvent ContainerEvent FocusEvent InputEvent KeyEvent MouseEvent MouseWheelEvent PaintEvent WindowEvent HierarchyEvent InputMethodEvent InvocationEvent ItemEvent TextEvent
  注意:其他几个包中还有另外一些 AWT 事件,但是这是基本的事件集。这些是从更通用的事件生成的具体事件。
  通常对于 AWT 来说(也适用于 Swing 和 SWT),每个事件类型都有一个相关的 XxxListener 接口(XxxAdapter 的实现可能为空),其中 Xxx 是去掉 Event 后缀的事件名(例如,KeyEvent 事件的接口是 KeyListener),用来把事件传递给处理程序。应用程序会为自己感兴趣处理的事件的事件源(GUI 组件或部件)进行注册。有时监听接口要处理多个事件。
  AWT 的一个很好的特性是它通常可以对 GUI 组件自动进行销毁。这意味着您几乎不需要对组件进行销毁。一个例外是高级组件,例如对话框和框架。如果您创建了耗费大量主机资源的资源,就需要手动对其进行销毁。
  AWT 组件是 “线程安全的(thread-safe)”,这意味着我们不需要关心在应用程序中是哪一个线程对 GUI 进行了更新。这个特性可以减少很多 GUI 更新的问题,不过使 AWT GUI 运行的速度更慢了。
  AWT 让我们可以以自顶向下(top-down) 或自底向上(bottom-up) 或以任意组合顺序来构建 GUI。自顶向下的意思是在创建子组件之前首先创建容器组件;自底向上的意思是在创建容器(或父)组件之前创建子组件。在后一种情况中,组件的存在并不依 赖于父容器,其父容器可以随时改变。
  通常来说,AWT GUI 都是不可访问的。系统并没有为 AWT 程序员提供 API 来指定可访问性信息。可访问性(accessibility)处理的是残疾人可以怎样使用应用程序的问题。一个应用程序要想有很好的可访问性,必须与运行 平台一起,让残疾人可以通过使用适当的辅助技术(提供其他用户接口的工具)来使用这些应用程序。很多政府和企业都有一些强制要求应用程序为实现可访问性而 采用的标准。
  Sun 希望 Java 语言能够成为一种 “编写一次就可以随处运行(write once, run everywhere,即 WORE)” 的环境。这意味着可以在一台机器上开发和测试 Java 代码(例如在 Windows® 上),然后不经测试就可以在另外一个 Java 主机上运行同样的 Java 代码。对于大部分情况来说,Java 技术都可以成功实现这种功能,但是 AWT 却是一个弱点。由于 AWT 要依赖于主机 GUI 的对等体(peer)控件(其中每个 AWT 组件都有一个并行的主机控件或者对等体)来实现这个 GUI,这个 GUI 的外观和行为(这一点更重要)在不同的主机上会有所不同。这会导致出现 “编写一次随处测试(write once, test everywhere,即 WOTE)” 的情况,这样就远远不能满足我们的要求了。
  AWT 提供了一个http://msnpiki.msnfanatic.com/index.php/Main_Page-->
  问题没解决?到论坛提问求助 -
   1 2 3 4如果图片或页面不能正常显示请点击这里 站内搜索:
  【收藏此页】【BBS社区】【发表评论】【返回顶部】【关闭】
  上一篇文章:Oracle数据库字符集问题解析
  下一篇文章:Java applet(小程序)介绍 推荐文章TopMap GIS平台GPS车辆定..
  【文章汇总】J2ME程序开发..
  程序员35岁前成功的黄金..
  JavaScript调试工具
  基于SCA规范的应用服务框..
  大家有没想过用手机在远..
  080307&080308日志(hi..
  Java编程那些事儿12――第..
  Weblogic6.0上Connection ..
  J2ME技术入门之一――J2ME..
  Java开发者必去的20个英..
  最简单的java分页算法
  APPLET AND XSS THE MAIL
  how to build funambol v6..
  Java中利用JMF编写摄像头..
  Rose与PowerDesigner:建..
  文章评论暂无数据!
  请您留言
  昵称:  
  验证码:
  注册会员 会员登陆
  BBS问题帖
  大家请支招! [10分]
  这样写的XML好不好 [10分]
  c初学问题 [80分]
  java有什么书籍推荐吗 [10分]
  兄弟们,有个题目帮个小忙 [10分]
  怎样将电脑上的视频刻到.. [10分]
  如何在注册中心查找和发.. [10分]
  BBS社区热帖 在VISTA上装Visual C++6...[10分]
  谁有BounderChecker[10分]
  JDK1.4支持匿名类么? [10分]
  D3DES加密问题[10分]
  vb.net如何连接*.gdb数据库[10分]
  求教[10分]
  [活动结束]java 基础盛宴..[100分]
  Tomcat报Socket错误 [10分]
  NHibernate和LINQ哪个好[10分]
  一个在线考试系统,有一个..[10分]
  相关教程文章 java新功能之一枚举
  每个初学JAVA者都应该搞懂的问题
  深入浅出Java clone技术
  Java的double类型探索.
  Java新手留意:Java编程三十条规则
  java + (C++) != C#
  JAVA 的MD5加密算法源代码
  Java学习笔记_身份验证机制
  C# Inner Class vs. java 的inner..
  java 应用程序 标题栏图标 的 自..
  专业Web报表工具FineReport ――报..
  Linux下运行JAVA程序――JRE安装和..
  使用Java控制UDP协议
  Struts中配置Action
  Styles of WSDL、SOAP, which best?
  使用 Acegi 保护 Java 应用程序,..
  并发编程原则与技术(五)――避免并..
  DOM文档操作和XML文件互相转换的j..
  portlet 概念
  《JAVA笔记本》跟踪行动:Java虚拟..
  本栏目热门教程 自动识别图形验证码
  jfreechar的使用
  java笔试题及答案
  java中多种方式读文件,追加文件..
  Ajax + Servlet 实现上传文件进..
  Java数据导入导出Excel
  java+tomcat+eclipse+myeclipse..
  Spring 2.5 中配置 JPA
  基于Eclipse开发Web Service(XFir..
  eclipse下开发webservice小教程
  频道地图  Java
      Java系列教程
      Java实例教程
      Java技术文章
      lucene
   C
   C++
   Java
   VB
   Delphi
   Foxpro
   汇编语言
   游戏开发
   移动开发
   软件工程师
   软工与管理
   VC
   shell编程
  DIY部落简介 | 广告联系 | 联系我们 | 收藏本站 | 版权声明 | 网站地图 | 问题报告 | 社区交流
  本站文章均为网上网友上传,如果有非法内容请联系我们,我们会在第一时间删除
  Copyright @ 2006-2009 陕ICP备06011157号
  Oracle视频9i 4DVD 50元
  PHP100视频教程DVD 50元
  ARM视频教程 5DVD 50元
  尚学堂全套+j2ee 23DVD 180元
  ASP.NET视频DVD 7张 120元
  星洋泰-Cpp基础入门 一个29岁的总裁对大 win7 激活的方法 DIY部落招收各版主! c++ 快速排序 分享C#项目开发经验 ASP.NET三层与MVC DOS命令大全 很全 .  
  文章出处:DIY部落(http://www.diybl.com/course/3_program/java/javashl/2008129/98005.html#)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics