文档介绍:图形用户界面设计
第十章
回顾
掌握多线程的概念
掌握如何创建线程
了解死锁的概念
了解线程同步
了解使用 wait() 和 notify() 在线程之间进行通信
2
目标
GUI相关概念
布局管理器
事件处理
常用Swing组件
3
GUI包和简单GUI程序2-1
称为抽象窗口工具集AWT(Abstract Window Toolkit),是使用Java进行GUI设计的基础。
。几乎所有AWT组件对应有新功能更强的Swing组件。另外还加入了一些全新的组件。Swing组件在名称上前面多了一个字母“J”。
4
GUI包和简单GUI程序2-2
:
(1)引用需要的包和类。
(2)设置一个顶层的容器。
(3)根据需要为容器设置布局管理器或使用默认布局管理器。
(4)将组件添加到容器内,位置自行设计。
(5)为响应事件的组件编写事件处理代码。
5
容器、组件、布局和观感
组件是可以用图形化的方式显示在屏幕上并能够与用户进行交互的对象。
容器是一种特殊的组件,一种能够容纳其他组件或容器的组件。
为了使图形用户界面具有良好的平台无关性,提供了专门用来管理组件在容器中的布局的工具。
决定swing应用程序的外观。
6
布局管理器
Java中的布局类型包括以下几种:
FlowLayout(流式布局)
BorderLayout (边界布局)
GridLayout(网格布局)
CardLayout (卡片布局)
GridBagLayout(网格包布局)
7
FlowLayout布局管理器
FlowLayout的构造函数有:
FlowLayout( ):生成一个默认的流式布局
FlowLayout(int alignment):可以设定每一行组件的对齐方式
FlowLayout(int alignment,int horz,int vert):可以设定组件间的水平和垂直距离
Applet和面板的缺省布局
组件从左上角开始按从左到右、从上到下的方式排列
FlowLayout mylayout = new FlowLayout();
FlowLayout exLayout = new
FlowLayout();
setLayout(exlayout); // 为容器设置新布局
8
BorderLayout布局管理器
下面是BorderLayout所定义的构造函数:
- BorderLayout( ):生成默认的边界布局
- BorderLayout(int horz,int vert): 可以设定组件间的水平和垂直距离
窗口、框架和对话框等的缺省布局
组件被置于容器的北、南、东、西或中间位置
. . .
setLayout(new BorderLayout());
Button btnEast=new Button("东");
Button btnWest=new Button("西");
Button btnNorth=new Button("北");
Button btnSouth=new Button("南");
Button btnCenter=new Button("中");
add(btnEast,);
add(btnWest,);
add(btnNorth,);
add(btnSouth,);
add(btnCenter,);
9
GridLayout布局管理器
GridLayout的构造函数如下所示:
-  GridLayout():生成一个单列的网格布局
- GridLayout(int row,int col):生成一个设定行数和列数的网格布局
- GridLayout(int row,int col,int horz,int vert):可以设置组件之间的水平和垂直间隔
用于将容器区域划分为一个矩形网格
组件按行和列排列
. . .
Button btn[]; // 声明按钮数组
String str[]={"1","2","3","4","5","6","7","8","9"};
setLayout(new GridLayout(3,3));