第8章 GUI(上)
GUI全称是Graphical User Interface,即图形用户界面。顾名思义,就是应用程序提供给用户操作的图形界面,包括窗口、菜单、按钮、工具栏和其他各种屏幕元素。目前,图形用户界面已经成为一种趋势,它的好处自不必多说了,所以几乎所有的程序设计语言都提供了GUI设计功能。在Java里有两个包为GUI设计提供丰富的功能,它们是AWT和Swing。AWT是Java的早期版本,其中的AWT组件种类有限,可以提供基本的GUI设计工具,却无法完全实现目前GUI设计所需的所有功能。Swing是SUN公司对早期版本的改进版本,它不仅包括AWT中具有的所有部件,并且提供了更加丰富的部件和功能,它足以完全实现GUI设计所需的一切功能。Swing会用到AWT中的许多知识,掌握了AWT,也就基本上掌握了Swing,我们就从AWT开始我们的图形界面设计之旅吧!
初识AWT
AWT中定义了多种类和接口,用于在Java应用程序和Java Applet中进行GUI设计。我们首先通过下面的示例程序来感受一下Java的图形界面编程。
import .*;
public class TestFrame
{
public static void main(String [] args)
{
Frame f=new Frame(“IT人资讯交流网”);
(new Button(“ok”));
(300,300);
(true);
}
}
图形界面程序中可以使用各种各样的图形界面元素,如文本框,按钮,列表框,对话框等等,我们将这些图形界面元素称为GUI组件。AWT为各种GUI组件提供了对应的Java组件类,。其中,Frame类用于产生一个具有标题栏的框架窗口。,,。,,,也可以只导入程序中用到的那些组件类。编译运行此程序,。
对于众多的GUI组件,根据其作用可以又分为两大类:基本组件(下面就全部简称为组件)和容器。
组件又被称为构件,它是诸如按钮、文本框之类的图形界面元素,在这些组件上不能容纳其他的组件。容器其实也是一种组件,是一种比较特殊的组件,它可以用来容纳其他组件,如窗口,对话框等等,。 ponent类的一个子类,由此可见容器本身也具有组件的功能和特点,也可以被当作基本组件一样使用。在上面的程序中,Frame就是一个容器,它容纳了一个Button部件。
AWT线程
细心的读者也许注意到了,在运行上面写的那段程序时,(true)语句后就退出了,程序的main线程也随之结束了,但程序并没有结束,窗口不仅正常显示在桌面上,而且我们还可以对这些窗口进行一些常规操作,如拖动窗口,改变窗口的大小等。我们在多线程的课程中曾经讲过,对Java程序来说,只要还有一个前台线程在运行,整个进程就不会结束。这说明我们的程序还有其它线程在运行,那么其它线程是谁创建的?又是在什么时候创建的呢?读者可以简单地认为,程序在产生Frame对象时,创建了一个新的线程,我们称之为AWT线程。AWT线程的内部实现,在不同的JDK版本下不太一样,从我们对Java的使用经验上来看,在不同的版本下,我们时常碰到我们的应用程序(不仅仅是AWT)有不同的执行结果,这是令人很痛苦和无奈的事情,也是我们使用Java所要经常承担的风险。(具体实现细节,读者在本章稍后的部分能够看到),,我们发现AWT线程没有结束,程序也不会自动结束。,当框架窗口被关闭后,AWT线程也结束了,程序随之结束。
搬出那些过时的小经验来给读者讲解,并不是什么好主意,甚至会造成误导。所以在这里,我的侧重点并不是要讲解与分析AWT线程在不同JDK版本下的差异的具体案例本身,因为百分之九十九的读者都不会再用到旧的JDK版本,也不会再碰到这样的问题的,既然人家在新的版本中已经做出了修改,你就没必要白费精力、花功夫去了解那些陈年旧事了。
虽然如此,但我还要在此提及这个问
Java就业培训教程第八章 来自淘豆网www.taodocs.com转载请标明出处.