有了Swing,还有必要使用AWT吗?

zhmjz 2002-11-07 01:01:13
只使用Swing可以吗?
...全文
77 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
kofwr 2002-11-07
  • 打赏
  • 举报
回复
理论上说是awt是被淘汰了,但是applet也是到出存在的,你要保证浏览器的用户能够浏览的Applet,不需要下载JRE,就得用awt,不过过个5年,awt也许就没用了吧,不过他毕竟是Swing的原型........
为什么需要GUI? 我们前面编写的程序命令行的,用户的体验度极差。 抽象窗口工具包(Abstract Window Tookit)是为java程序提供建立图形用户界面(Graphics User Interface GUI)的工具集。主要包含如下组件: 1. 用户界面组件 2. 事件处理模型 3. 图形图像工具(形状、颜色、字体) 4. 布局管理器 AWT的优势: 1. 最早的JAVA GUI包,内嵌到JDK中,无需引入其他类,功能稳定 2. AWT组件都是线程安全的 3. 界面编程基础. 学会AWT, 很容易去学swing/SWT等功能较强大的GUI组件. AWT的缺点: 1. 组件的创建完全依赖操作系统实现,导致不同的操作系统下出现不同的外观。 说白了,awt的组件是由操作系统绘制的,我们也说awt组件是重量级的组件。 这个工具包提供了一套与本地图形界面进行交互的接口。AWT 中的图形函数与操作系统所提供的图形函数之间有着一一对应的关系,我们把它称为peers。也就是说,当我们利用 AWT 来构件图形用户界面的时候,我们实际上是在利用操作系统所提供的图形库。由于不同操作系统的图形库所提供的功能是不一样的,在一个平台上存在的功能在另外一个平台上则可能不存在。为了实现Java语言所宣称的"一次编译,到处运行"的概念,AWT 不得不通过牺牲功能来实现其平台无关性,也就是说,AWT 所提供的图形功能是各种通用型操作系统所提供的图形功能的交集。由于AWT 是依靠本地方法来实现其功能的,我们通常把AWT控件称为重量级控件。 AWT并没有为GUI组件提供真正的实现,而是调用运行平台的GUI组件来创建和平台一致的对等体peers,因此程序中Textarea实际上是windows的多行文本域组件的对等体,具有和他相同的行为。所以,你右键单击textarea会出现菜单… 2. 线程安全导致运行速度慢 3. 为了保证程序的可移植性,AWT组件集遵循最大公约数原则,即AWT只拥有所有平台上都存在的组件的公有集合。有些常用的组件不支持,比如:表、树、进度条等。字体也只能支持4种。 为什么还需要学习AWT? 实际开发中使用AWT的情况非常少,但是我们仍然有必要学习AWT。主要原因如下: 1. Swing是在AWT基础上构建的,事件模型和一些支持类(形状、颜色、字体)都一样。掌握AWT有利于后面学习SWING. Eclipse不是swing开发的,是swt开发的。 2. 学习一下GUI编程。事实上,编程思路和其他语言类似
跟我学Java Swing之游戏设计 一 谁知道通天的巴比伦塔耗费了多少沙石?又有谁知道罗马的建成经历了多少个日夜?我 们惟一知道的是,没有一块块砖石的垒砌,就没有蜿蜒万里的长城;没有巨石和黏土的堆 集,就没有亘古不变的金字塔。由此可见,基础知识的准备对于我们学习任何事物都至 关重要,那么,就让我们从认识Swing的一些基础功能开始,启动我们建造罗马的伟大工 程吧! 前言   Java咖啡馆已经开张不少时日了,如果你已经喜欢上了Java这杯咖啡的味道,那么 记得常来哦。这一次,我们为大家准备了一大杯香浓的咖啡——将以开发一个"连连看"游 戏为蓝本,和大家共同学习Java中Swing的用法,当你细心品味这杯咖啡后,你会发现, 不但Java这杯咖啡还别有一番风味,而且还学会了专业游戏的开发方法,真是两全其美 !   为了让大家先睹为快,下图便是游戏的截图。大家可以下载游戏试玩(下载游戏程 序;下载源文件),然后在命令行方式下使用java -jar kyodai.jar来运行。此外,还可以到我的主页http://www.ismyway.com上下载这个游戏 的单机版以及手机版进行试玩(见图1)。   Java咖啡馆以前介绍过AWT的知识,那么SwingAWT究竟有什么区别呢?学习Java的 人都可能听到或看到过重量级控件和轻量级控件这个字眼,AWT就是我们通常所指的重量 级控件,Swing则是轻量级控件。我们都知道Java的口号是"一次编写,到处运行",这也 就要求在我们的程序中,尽量使用纯Java的代码。很不幸的是,AWT依赖与本地平台的接 口,因此,在不同的操作系统上,使用AWT制作的界面看起来可能会有些细微区别。Swi ng则完全不同了,Swing是用纯Java编写的,因此,使用Swing编写的界面能保证在所有 平台上有着同样的外观。这里还有一个窍门:在JDK中,为便于区别,所有Swing控件都以 大写字母J开头,比如说JButton(AWT 中对应的是Button),这样你就很容易区分Swing控件和AWT控件了。 Swing初体验   对于想学习Swing编程的朋友,我们特地为大家准备了一些小窍门。首先,下载并阅 读代码是极有必要的。由于这是一篇关于Swing的教程,所以,我们只是尽可能讲解一些 与Swing有关的内容,与Swing无关的内容一般不会涉及,例如算法部分。其次,受篇幅 限制,也不可能在这里将每部分代码都写得完完整整的,所以,大家也需要对照完整代 码来看。最后,为了使大家更容易把精力集中在Swing学习上,我们也将游戏开发中所需 资源放在下载文件中,大家下载后便能够编译运行,看到执行结果。( 下载游戏源文件)   1.顶层容器   什么是顶层容器?当我们使用Java进行图形编程的时候,图在哪里绘制呢?我们需 要一个能够提供图形绘制的容器,这个容器就被称为顶层容器,你也可以把它想象成一 个窗口。顶层容器是进行图形编程的基础,一切图形化的东西,都必然包括在顶层容器 中。在Swing中,我们有三种可以使用的顶层容器,它们分别是:   ·JFrame:用来设计类似于Windows系统中的窗口形式的应用程序。   ·JDialog:和JFrame类似,只不过JDialog是用来设计对话框。   ·JApplet:用来设计可以在嵌入在网页中的Java小程序。   如果需要使用Swing制作一个窗口类程序,我们的代码看起来应该是这样: import javax.swing.*; public class KyodaiUI extends JFrame { …… }   2.控件   控件是构成应用程序界面的基本元素,按钮、文本框、进度条等,这些都是控件。 控件(这里我们只讨论可视化控件)又可以分为容器控件和非容器控件。从字面意义上来 理解,容器控件就是能包含其他控件的特殊控件,例如,Java中的JPanel控件就属于容 器型控件,我们可以在JPanel中放置按钮、文本框等非容器控件,你甚至可以在JPanel 中再放置若干个JPanel控件(值得注意的是,顶层容器也是容器型控件,每一个窗口应用 程序中有且只能有一个顶层容器控件,换句话说,顶层容器不能包括在其他的控件中)。   Java中的容器控件有很多,除刚才提到的JPanel外,还有JTabbedPane、JScrollPa ne等,非容器控件有JButton、JLabel、JTextField等。如果你需要向某个容器型的控件 中添加控件,你可以使用 add(Component comp) 方法来实现,如: JPanel panel = new JPanel(); JButton button = new JButton(); panel.add(button);   3

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧