GUI
Java图形开发有两种可以使用的技术:AWT、Swing
· AWT:大量使用Windows的系统函数
· Swing:采用Java实现用户界面,可以在任意的系统平台上工作
AWT
AWT(Abstract Windowing Toolkit),抽象窗口工具包,是Java提供的用来建立和设置Java的图形用户界面的基本工具。
AWT中的所有工具类都保存在java.awt包中,此包中的所有操作类可用来建立图形用户界面(GUI)的类,这些类又被称为组件(components)。
AWT包中提供的所有工具类,主要分为以下三种:
➢ 组件:Component
➢ 容器:Container
➢ 布局管理器:LayoutManager
组件
➢ 在图形界面中,用户经常会看到按钮、标签、菜单等组件。
➢ 组件会在一个窗体上显示。
➢ 在整个AWT包中,所有的组件类都是从Component和MenuComponet扩展而来的,这些类会继承这两个类的公共操作。
容器(Container)
➢ 所有的AWT组件都应该放到容器之中。
➢ 在容器中,所有的组件都可以设置在容器中的位置、大小等。
➢ 所有的容器都是Component的子类。
布局管理器(LayoutManager)
➢ 使用布局管理器可以使容器中的组件按照指定的位置进行摆放。即使容器改变了大小,布局管理器也可以准确的把组件放到指定的位置,这样就可以有效
的保证版面不会混乱。
➢ 在AWT中所有的布局管理器都是LayoutManager的子类。
Swing简介
➢ AWT大量的引入了Windows函数, 称为重量级组件。
➢ Swing使 用Java语言实现,是以AWT平台为基础构建起来的新组件,属于轻量级的图形界面组件,直接使用Swing可以更加轻松的构建用户界面。
基本容器JFrame类的常用操作方法
➢ 使用JFrame类创建一个窗口
1 | public JFrame0 throws HeadlessException | 构造 | 创建一个普通的窗体对象 |
2 | public JFrame (String title) throws He adlessException | 构造 | 创建一个窗体对象,并指定标题 |
3 | public void setSize(int width, int height) | 普通 | 设置窗体大小 |
4 | public void setSize(Dimension d) | 普通 | 通过Dimension设置窗体大小 |
5 | public void setBackground(Color c) | 普通 | 设置窗体的背景颜色 |
6 | public void setLocation(int x,int ) | 普通 | 设置组件的显示位置 |
7 | public void setLocation(Point p) | 普通 | 通过Point来设置组件的显示位置 |
8 | public void setVisible(boolean b) | 普通 | 显示或隐藏组件 |
9 | public Component add(Component comp) | 普通 | 向容器中增加组件 |
10 | public void setLayout(LayoutManager mgr) | 普通 | 设置布局管理器,如果设置为null表示不使用 |
11 | public void pack() | 普通 | 调整窗口大小,以适合其子组件的首选大小和布局 |
12 | public Container getContentPane() | 普通 | 返回此窗体的容器对象 |
Dimension类
➢ 在JFrame中设置窗体的大小,也可以使用Dimension类完成。➢此类封装了组件的现实宽度和高度。
Point类
➢ 组件的显示位置也可以使用Point类指定,此类封装的是显示位置的X、Y坐标。
组件JLabel类的常用方法和常量
1 | public static final int LEFT | 常量 | 标签文本左对齐 |
2 | public static final int CENTER | 常量 | 标签文本居中对齐 |
3 | public static final int RIGHT | 常量 | 标签文本右对齐 |
4 | public JLabelO throws HeadlessException | 构造 | 创建一个ILabeI对象 |
5 | public JLabel(String text) throws HeadlessException | 构造 | 创建一个标签并指定文本内容,默认为左对齐 |
6 | public Label(String text,int alignment) throws HeadlessException | 构造 | 创建一个标签并指定文本内容以及对齐方式,可以使用JLabel. LEFT. JLabel RIGHT、JLabe1.CENTER三个值 |
7 | public JLabel(String text,Icon icon, int horizontalAlignment) | 构造 | 创建具有指定文本、图像和水平对齐方式的JLabeI对象 |
8 | public JLabel(Icon image,int horizontalAlignment) | 构造 | 创建具有指定图像和水平对齐方式的JLabel实例 |
9 | public void setText(String text) | 普通 | 设置标签的文本 |
10 | public String getText() | 普通 | 取得标签的文本 |
11 | public void setAlignment(int alignment) | 普通 | 设置标签的对齐方式 |
12 | public void setIcon(Icon icon) | 普通 | 设置指定的图象 |
JButton组件
JButton组件表示一个普通的按钮,直接使用此类就可以在窗体中增加一个按钮。
布局管理器
· 使用布局管理器可以管理组件的显示位置,每当需要重新调整屏幕大小或重新绘制屏幕上任一项目时,都要用到布局管理器。
· 在Swing中使用的所有布局管理器都实现LayoutManager接口,在Swing中主要使用以下五种常见的布局管理器:
➢ FlowLayout
➢ BorderIayout
➢ GridIayout
➢ Cardlayout
➢ 绝对定位。
FlowLayout
FlowLayout属于流式布局管理器,使用此种布局方式,所有的组件会像流水一样一次进行排列。
BorderLayout
BorderI ayout将一个窗体的版面划分成东、西、南、北、中五个区域,可以直接将需要的组件放到这五个区域中即可。
GridLayout
➢ GridIayout布局管理器是以表格的形式进行管理的
➢ 在使用此布局管理器的时候必须设置显示的行数和列数
CardLayout
➢ CardLayout就是将一组组彼此重叠的组件进行布局,就像一张张卡片一样,这样每次只会展现一个界面
绝对定位
如果不在窗体中指定布局管理器,也可以通过设置绝对坐标的方式完成布局设置。
public void setBounds(int x,int y,int width,int height)