好文档 - 专业文书写作范文服务资料分享网站

Java 教案-第12章 GUI初步复习过程

天下 分享 时间: 加入收藏 我要投稿 点赞

Java教案-第UI初步2 1章

G

精品资料

第12章 GUI初步

12.1 介绍(Introduction)

为JavaGUI程序设计应用程序接口(API)是面向对象编程最精彩的内容,图形用户界面(GUI)可以通过键盘或鼠标来响应用户的操作。这章首先介绍GUI编程基础,然后用GUI来讲述面向对象编程,特别是要讲框架和组件的关系,包括容器,布局管理器,颜色,字体,边框和图标等。 12.2 Swing和AWT

前面第8章,稍微介绍了一些面向对象编程的GUI例子,显示GUI组件,使用了诸如Jbutton,Jlabel等GUI组件。为什么这些GUI前会有一个J?为什么不用Button?事实上,在java.awt包中已经有一个名为Button的类。

当Java问世的时候,称AWT(Abstract Windows Toolkit)的GUI类就被绑定在类库中。对于开发简单的图形用户界面,AWT是胜任的,但如果开发综合,复杂的GUI工程却力不从心。另外,AWT是依赖于平台的,即AWT组件的样式与它使用的底层平台相似。新版本中,许多AWT的用户界面组件被一个更鲁棒,灵活,通用的Swing组件代替。Swing组件使用Java代码编写,被直接应用在程序上,而不是调用底层的平台服务。但java.awt.Window或java.awt.Panel的子类除外,因为他们必须使用特定平台本地的GUI来绘制。Swing组件很少依赖目标平台,很少使用平台下的本地GUI程序,鉴于此,把它称为轻量级组件,而AWT称为重量级组件。

为了和AWT组件进行区分,Swing组件的类命名加前缀J,尽管AWT组件依然被现在版本的Java支持,但最好使用轻量级组件,因为AWT最终会淡出历史舞台,也因此,只介绍Swing组件。 12.3 Java GUI与 API

GUI的API包含的类可以被分为3类,组件类,容器类,帮助类。它们的层次关系如图所示。

组件类,如Jbutton等用来创建用户界面。容器类,如Jframe,Jpanel和Japplet等用来盛载其他组件。帮助类,如Graphics,Color等用来支持GUI组件。

注意:Jframe,Japplet,Jdialog和Jcomponent类和它们的子类被组织在Javax.swing包中,其他的类被组织在AWT包中。 12.3.1 Component类

Component的实例可以被显示在屏幕上。Component是所有用户界面类的根类(父类),包含Container类。Jcomponent类是所有轻量级组件的根类。Componet和Jcomponent都是抽象类(14章讲解)。现在只需要知道抽象类和类相似,仅仅是不能创建实例就可以了。例如,不可以使用new JComponent()来创建一个Jcomponent对象,但可以使用它非抽象子类的构造方法来创建Jcomponent实例。熟练掌握继承的层次关系非常重要,如下述语句都显示true。

12.3.2 Container类

Container类的实例可以盛载Component的实例,是GUI组件,它用来盛载其他GUI组件的。Window,Panel,Applet,Frame和Dialog都是AWT组件的容器类。为了配合Swing组件,使用Container,Jframe,Jdialog,Japplet和Jpanel类容易,如下图所述。

12.3.3 帮助类

如Graphics,Color,Font,FontMetrics,Dimension和LayoutManager等类是帮助类,它们不是Component的子类。它们用来描述GUI组件的特性,属性,如下图所示。

仅供学习与交流,如有侵权请联系网站删除 谢谢2

精品资料

注意:帮助类在AWT包中,Swing组件不能替换所有的AWT,它替换的只有AWT的GUI组件类,因此AWT帮助类仍然在GUI编程中用处很大。 12.4 Frames框架

为了创建用户界面,需要创建一个frame或一个applet(18章介绍)容器来放置用户界面组件。 12.4.1 创建Frame

使用Jframe类来创建一个框架frame,如下所示。

使用Jframe创建一个frame窗口,如下程序。

框架frame的可见性默认为false,因此必须使用frame.setVisible(true)来显示框架。语句frame.setSize(400,300),设置框架窗口宽400,高300像素,如果不设置大小,则只显示一个标题栏,运行程序后在屏幕显示如下。

Line 7使得frame在屏幕中间显示,line8告诉程序当frame被关闭时终止,没有此语句,程序将不能终止,这种情况下只能在Dos(windows平台)命令提示符下,使用Ctrl+C来终止,在Eclipse中将使用红色终止按钮来终止程序。

注意:要在调用居中语句前设置窗口大小,否则无效。 12.4.2 在Frame中添加组件

使用add方法可以为Frame添加组件,如图所示程序。

仅供学习与交流,如有侵权请联系网站删除 谢谢3

精品资料

每一个JFrame都包含一个content pane(内容面板),内容面板是Container的一个实例。如按钮等GUI组件会被放置在frame的content pane中。在Java早期版本,必须使用getContentPane方法来返回frame的content pane,然后调用content pane的add方法为其添加组件,如下所示(教程中示例如此)。

这是非常笨重的,从java 5以后的新版本允许直接调用frame的add方法来为content pane添加组件,如下:

这个新特性称content-pane授权(给frame),严格的说,是一个组件被添加到frame的content pane。为简单,称把组件添加到frame中。

一个JButton对象使用new Jbutton(“OK”);来创建,使用frame.add(jbtOK)被添加到frame的content pane中。方法add(Compunent comp)定义在Container类中,因为JButton是Component的子类,因此Jbutton的实例同样也是Component的实例,从容器中删除组件使用remove方法,使用方式:Container.remove(jbtOK);

当运行程序时,窗口会被显示,按钮会总是出现在窗口中间,不管窗口是否重新设置大小,总是占据整个窗口。原因就是组件被

content pane的不仅管理器放置在窗口中,content pane的默认的布局管理器会把这个按钮放置在窗口的中央。下节会学习使用其他几种布局管理器,把组件放置在期望的位置。 12.5 布局管理器

介绍3种布局管理器,FlowLayout,GridLayout和BorderLayout。 12.5.1 FlowLayout

FlowLayout是最简单的布局管理器,称流式布局管理器。组件被从左到右,从上到下的,按它被添加的顺序放置在窗口中。当一行满之后,会另起一行。类中包含三个常量,设置组件的对齐方式,FlowLayout.RIGHT, FlowLayout.CENTER, FlowLayout.LEFT。也可以使用分割线来分割组件,如下所示FlowLayout类图:

下列程序给出一个流式布局,添加三个标签和三个文本框。

仅供学习与交流,如有侵权请联系网站删除 谢谢4

Java 教案-第12章 GUI初步复习过程

Java教案-第UI初步21章G精品资料第12章GUI初步12.1介绍(Introduction)为JavaGUI程序设计应用程序接口(API)是面向对象编程最精彩的内容,图形用户界面(GUI)可以通过键盘或鼠标来响应用户的操作。这章首先介绍GUI编程基础,然后用GUI来讲述面向对象编
推荐度:
点击下载文档文档为doc格式
4b77y175zh2wkqq4mj6h371qz5d0jm00kkq
领取福利

微信扫码领取福利

微信扫码分享