图形用户界面
-
作为一个程序设计者,必须优先考虑用户的感受,一定要让用户感到“爽”,我们的程序才会被需要、被使用,这样的程序才有价值。
-
当JDK1.0发布时,Sun提供了一个基本的GUI类库,这个GUI类库希望可以在所有平台下都能运行,这套基本类库被称为“抽象窗口工具集(Abstract Window Toolkit)”,它为Java应用程序提供了基本的图形组件。
AWT简介
-
当JDK1.0发布时,Sun提供了一个基本的GUI类库,这个GUI类库希望可以在所有平台下都能运行,这套基本类库被称为“抽象窗口工具集(Abstract Window Toolkit)”,它为Java应用程序提供了基本的图形组件。
-
AWT (Abstract Window Tools):抽象窗口工具
AWT的缺点
使用AWT作出的图形用户界面在所有平台上都显得很丑陋,功能也非常有限。
AWT为了迎合所有主流操作系统的界面设计,AWT组件只能使用这些操作系统上图形界面组件的交集,所以不能使用特定操作系统上复杂的图形界面组件,最多只能使用四种字体。
AWT用的是非常笨拙的,非面向对象的编程模式。
Swing组件
-
Swing为绝大部分的界面组件都提供了实现。这些界面组件都是直接绘制空白区域上。
-
Swing自己实现了这些界面组件,因此Swing无需使用各操作系统上界面组件的交集。
-
由于Swing不再需要调用操作系统上相应的界面组件,Swing的UI界面更加统一。
java.awt包
在这个包中,提供了基本的java程序GUI设计工具:
-
Component/MenuComponent
-
Container
-
LayoutManager
Container(容器)
-
容器(Container)实际上是Component的子类,因此容器类对象本身也是一个组件,具有组件的所有性质,另外还具有容纳其它组件和容器的功能。
-
容器类对象可使用方法add()添加组件
-
两种主要的容器类型
-
Window:可独立存在的顶级窗口
-
Panel:可作为容器容纳其它组件,但不能独立存在,必须被添加到其它容器中(如Window 或 Applet)
Container层次关系图
Container常用方法
-
add()
-
setLocation():设置位置。
-
setSize():设置大小
-
setBoundes():同时设置大小、位置。
-
setVisible()
-
pack()
组件定制
-
组件的大小和位置由布局管理器(LayoutManager)决定。
-
不使用布局管理器则可以定制组件的大小和位置,但必须在容器中使用组件的setLocation(), setSize(), setBounds()方法确定大小位置
Frame类
-
代表一个窗口。
-
是Window类的子类
-
有标题,可通过拖拉改变大小
-
初始化时为不可见,可用setVisibl