没有合适的资源?快使用搜索试试~ 我知道了~
JAVA课程认证08.doc,不错的参考资料
资源详情
资源评论
资源推荐
第八章 建立 GUIs
本模块讲述图形用户界面的建立及布局。它介绍了抽象视窗工具包,一种建立 GUIs 的类包。
第一节 相关问题
讨论—下述问题与本模块中出现的材料相关。
- Java 编程语言是一个具有独立平台的编程语言。GUI 环境通常是从属平台。那么,为了使 GUI 平台独立,
Java 技术是如何接近这个主题的呢?
第二节 目 的
完成本模块学习时,将能:
- 描述 AWT 包及其组件
- 定义 Container、Component 及 Layout Manager 等术语,以及它们是如何在一起来建立
GUI 的
- 使用 Layout Manager
- 使用 Flow、Border、Gird 及 Card 布局管理器来获得期望的动态布局
- 增加组件到 Container
- 正确运用 Frame 及 Panel 容器
- 描述如何使用嵌套容器来完成复杂的布局
- 在 Java 软件程序中,确认如下内容:
- 容器
- 相关布局管理器
- 所有组件的布局层次
第三节 AWT
AWT
- 提供基本的 GUI 组件,用在所有的 Java applets 及应用程序中
- 具有可以扩展的超类,它们的属性是继承的,类也可被抽象化
- 确保显示在屏幕上的每个 GUI 组件都是抽象类组件的子类
- Contaner,它是一个 Component 的抽象子类,而且包括两个子类
- Panel
- window
AWT 提供用于所有 Java applets 及应用程序中的基本 GUI 组件,还为应用程序提供与机器的界面。这将保证一台
计算机上出现的东西与另一台上的相一致。
在学 AWT 之前,简单回顾一下对象层次。记住,超类是可以扩展的,它们的属性是可继承的。而且,类可以被抽
象化,这就是说,它们是可被分成子类的模板,子类用于类的具体实现。
显示在屏幕上的每个 GUI 组件都是抽象类组件的子类。也就是说,每个从组件类扩展来的图形对象都与允许它们运
行的大量方法和实例变量共享。
Container 是 Component 的一个抽象子类,它允许其它的组件被嵌套在里面。这些组件也可以是允许其它组件被
嵌套在里面的容器,于是就创建了一个完整的层次结构。在屏幕上布置 GUI 组件,容器是很有用的。Panel 是
Container 的最简单的类。Container 的另一个子类是 Window。
第四节 Java.awt 包
Java.awt 包包含生成 WIDGETS 和 GUI 组件的类。该包的基本情况如下图所示。黑体字的类表明该模块的要点。
第五节 建立图形用户界面
8.5.1 Container
105
Container
- Container 的两个主要类型是 Window 和 Panel
- Window 是 Java.awt.Window.的对象
- Panel 是 Java.awt.Panel 的对象
Container 有两个主要类型:Window 和 Panel
Window 是 Java.awt.Window.的对象。Window 是显示屏上独立的本机窗口,它独立于其它容器。
Window 有两种形式:Frame(框架)和 Dialog(对话框)。Frame 和 Dialog 是 Window 的子类。Frame 是一个
带有标题和缩放角的窗口。对话没有菜单条。尽管它能移动,但它不能缩放。
Panel 是 Java.awt.Panel 的对象。Panel 包含在另一个容器中,或是在 Web 浏览器的窗口中。Panel 确定一个四
边形,其它组件可以放入其中。Panel 必须放在 Window 之中(或 Window 的子类中)以便能显示出来。
注—容器不但能容纳组件,还能容纳其它容器,这一事实对于建立复杂的布局是关键的,也是基本的。
滚动块也是 Window 的一个子类。它在模块 10“AWT 组件集”里讨论。
8.5.2 定位组件
定位组件
- 容器里的组件的位置和大小是由布局管理器决定的。
- 可以通过停用布局管理器来控制组件的大小或位置。
然后必须用组件上的 setLocation(),setSize(),或 setBounds()来定位它们在容器里的位置。
容器里的组件的位置和大小是由布局管理器决定的。容器对布局管理器的特定实例保持一个引用。当容器需要定位
一个组件时,它将调用布局管理器来做。当决定一个组件的大小时,同样如此。布局管理器完全控制容器内的所有组
件。它负责计算并定义上下文中对象在实际屏幕中所需的大小。
8.5.3 组件大小
因为布局管理器负责容器里的组件的位置和大小,因此不需要总是自己去设定组件的大小或位置。如果想这样做
(使用 setLocation(),setSize()或 setBounds()方法中的任何一种),布局管理器将覆盖你的决定。
如果必须控制组件的大小或位置,而使用标准布局管理器做不到,那就可能通过将下述方法调用发送到容器中来中
止布局管理器:
setLayout(null);
做完这一步,必须对所有的组件使用 setLocation(),setSize()或 setBounds(),来将它们定位在容器中。请注意,由于
窗口系统和字体大小之间的不同,这种办法将导致从属于平台的布局。更好的途径是创建布局管理器的新子类。
第六节 Frames
Frames
- 是 Window 的子类
- 具有标题和缩放角
- 从组件继承并以 add 方式添加组件
- 能以字符串规定的标题来创建不可见框架对象
- 能将 Border Layout 当做缺省布局管理器
- 用 setLayout 方式来改变缺省布局管理器
106
Frames 是 Window 的一个子类。它是带有标题和缩放角的窗口。它继承于 Java.awt.Container,因此,可以用 add()方
式来给框架添加组件。框架的缺省布局管理器就是 Border Layout。它可以用 setLayout()方式来改变。
框架类中的构造程序 Frame(String)用由 String 规定的标题来创建一个新的不可见的框架对象。当它还处于不可见状
态时,将所有组件添加到框架中。
1. import java.awt.*;
2. public class MyFrame extends Frame {
3. public static void main (String args[]) {
6. MyFrame fr = new MyFrame("Hello Out There!");
7. fr.setSize(500,500);
4. fr.setBackground(Color.blue);
5. fr.setVisible(true);
6. }
7. public MyFrame (String str) {
8. super(str);
9. }
10. }
上述程序创建了下述框架,它有一个具体的标题、大小及背景颜色。
注—在框架显示在屏幕上之前,必须做成可见的(通过调用程序 setVisible(true)),而且其大小是确定的(通
过调用程序 setSize()或 pack())。
第七节 Panels
Panels
- 为组件提供空间
- 允许子面板拥有自己的布局管理器
- 以 add 方法添加组件
象 Frames 一样,Panels 提供空间来连接任何 GUI 组件,包括其它面板。每个面板都可以有它自己的布管理程序。
一旦一个面板对象被创建,为了能看得见,它必须添加到窗口或框架对象上。用 Container 类中的 add()方式可以做到
这一点。
下面的程序创建了一个小的黄色面板,并将它加到一个框架对象上:
1. import java.awt.*;
2. public class FrameWithPanel extends Frame {
107
剩余15页未读,继续阅读
AI创世纪
- 粉丝: 554
- 资源: 29
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0