文档介绍:第6章 GUI编程
软件工程一系
Java程序设计与应用开发
教学内容
GUI实例
GUI组件
现代的用户倾向于使用可以由鼠标方便操作的图形用户界面(GUI-Graphical User Interface)程序。本章的内容就是介绍如何使用JFC(Java Foundation Class)ponent)来构建GUI应用程序。
事件类
字体类
Graphics
Component
颜色类
布局管理类
Checkbox
Container
Button
…
Window
Panel
Applet
Dialog
Frame
List
图象类
菜单类
Swing
Swing起步-Swing概述
,已经有一个用于GUI编程的类库AWT(Abstract Window Toolkit),称之为抽象窗口工具箱。遗憾的是,AWT中的组件(例如按钮,类名为Button)在实现中使用了本地代码(Native Code),这些组件的创建和行为是由应用程序所在平台上的本地GUI工具来处理的。因此,AWT组件要在不同的平台上提供给用户一致的行为就受到了很大的限制。同时,AWT组件中还存在很多bug,这就使得使用AWT来开发跨平台的GUI应用程序困难重重。
1996年,sacpe公司原来开发的一套GUI库,也就是现在所谓的Swing组件。Swing组件和原来的AWT组件完全不同,最大的区别就是Swing组件的实现中没有使用本地代码,这样对底层平台的依赖型就大为降低,并且可以给不同平台的用户一致的感觉。此外,和原来的AWT相比,Swing中提供了内容更多、使用更为方便的组件。
读者在阅读一些书籍时,常会遇到名词JFC(Java Foundation Class)。JFC的概念是在1997年的JavaOne开发者大会上首次提出的,是指用于构建GUI的一组API。实际上,Swing只是JFC的一部分,其它的还有二维图形(Java 2D)API以及拖放(Drag and Drop)API等等。
Swing概述-续
√在GUI编程中,使用什么样的GUI组件固然很重要,但是采用什么事件处理模型同样也很重要。Java ,AWT的事件处理模型是很不完善的。Java ,在此之后,未作变动。在编写本书时,。
√Swing并不是完全取代了AWT,Swing只是使用更好的GUI组件(如JButton)代替AWT中相应的GUI组件(如Button),并且增加了一些AWT中原来所没有的GUI组件。并且,Swing仍使用AWT 。
√虽然现在AWT组件仍得到支持,。
组件的分类
Jcomponent是一个抽象类,用于定义所有子类组件的一般方法,其类层次结构如下所示: | +-- | +-- | +-- ponent类,JComponent类继承于Container类,所以凡是此类的组件都可作为容器使用。
一个GUI实例
下面的这个应用程序很简单,只是在屏幕上显示一个框架组件(JFrame):
import .*;
public class FirstGUI{
public static void main(String []args){
JFrame f=new JFrame(); //创建一个框架对象f
("FirstFrame"); //设定框架的标题
(250,100); //设定框架的大小
() ; //显示框架
}
}
GUI实例-续
Swing中的组件是“轻量级”(lightweight)组件,并且每个组件都可以是一个容器。可以向任何一个组件中添加其它的组件,但是顶层容器类型的组件不能添加到任何其它组件中。此外,任何一个Swing组件要想在屏幕上显示出来,最终都必须由一个顶层容器来容纳。
Swing中组件的类名通常以'J'开头(如JFrame),以区别于AWT中相应的组件(如Frame)。
,javax是java extension的缩写形式,表示Swing包是java的一个扩展包。