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