第9章 GUI - 补充案例(3)

2019-08-30 19:22

博学谷——让IT教学更简单,让IT学习更有效

4、 设计思路(实现原理)

1) 编写类Example06,创建一个名为“流式布局”的窗体。 2) 设置窗体中的布局管理器为FlowLayout。

3) 创建1个按钮,并为按钮添加点击事件,每点击一次按钮就再生成新的按钮。

二、案例实现

import java.awt.*; import java.awt.event.*; public class Example06 { }

public static void main(String[] args) { }

final Frame f = new Frame(\流式布局\创建一个名为流式布局的窗体

// 设置窗体中的布局管理器为FlowLayout,所有组件左对齐,水平间距为25,垂直间距为25 f.setLayout(new FlowLayout(FlowLayout.LEFT, 25, 25)); f.setSize(200, 300); // 设置窗体大小 f.setLocation(300, 200); // 设置窗体显示的位置 Button but1 = new Button(\创建第1个按钮

f.add(but1); // 把\第1个按钮\添加到f窗口 // 下面的代码是每点击一次“1”就向窗体中添加一个按钮

but1.addActionListener(new ActionListener() { // 动作事件为第1个按钮添加点击事件

private int num = 1; // 定义变量num,记录按钮的个数 public void actionPerformed(ActionEvent e) { }

f.add(new Button(++num));// 向窗体中添加新按钮

// f.setVisible(true); // 刷新窗体显示新按钮

});

f.setVisible(true); // 设置窗体可见

运行结果如图3-8所示。

11

博学谷——让IT教学更简单,让IT学习更有效

图9-9 运行结果

三、案例总结

1、FlowLayout布局管理器的特点就是可以将所有组件像流水一样依次进行排列,不需要用户明确的设定,但是在灵活性上相对差了点。

2、FlowLayout对象有三个构造方法,如下表所示。 方法声明 FlowLayout() FlowLayout(int align) 功能描述 组件默认居中对齐,水平、垂直间距默认为5个单位 指定组件相对于容器的对齐方式,水平、垂直间距默认为5个单位 FlowLayout(int align,int hgap,int vgap) 指定组件的对齐方式和水平、垂直间距 案例9-7 BorderLayout布局管理器 一、案例描述

1、 考核知识点

编号:00109009

名称:BorderLayout布局管理器

2、 练习目标

? 掌握BorderLayout布局管理器的使用

3、 需求分析

BorderLayout(边界布局管理器)是一种较为复杂的布局方式,它将容器划分为五个区域,分别是东(EAST)、南(SOUTH)、西(WEST)、北(NORTH)、中(CENTER)。为了让初学者熟悉BorderLayout布局,本案例演示一下BorderLayout布局管理器对组件布局的效果。

4、 设计思路(实现原理)

1) 编写类Example07,创建一个名为“边界布局”的窗体 2) 设置窗体中的布局管理器为BorderLayout

3) 创建5个按钮,分别用于填充BorderLayout的5个区域 4) 将创建好的按钮添加到窗体中,并设置按钮所在的区域

二、案例实现

import java.awt.*; public class Example07 {

public static void main(String[] args) {

final Frame f = new Frame(\边界布局\

f.setLayout(new BorderLayout()); // 设置窗体中的布局管理器 f.setSize(300,300);

12

博学谷——让IT教学更简单,让IT学习更有效

}

}

f.setLocation(300, 200); f.setVisible(true);

Button but1 = new Button(\东\// 创建新按钮 Button but2 = new Button(\西\Button but3 = new Button(\南\Button but4 = new Button(\北\Button but5 = new Button(\中\f.add(but1,BorderLayout.EAST); f.add(but2,BorderLayout.WEST); f.add(but3,BorderLayout.SOUTH); f.add(but4,BorderLayout.NORTH); f.add(but5,BorderLayout.CENTER);

// 设置按钮所在区域

运行结果如图9-10所示。

图9-10 运行结果

三、案例总结

1、在BorderLayout布局管理器中,组件组件可以被放置在这五个区域的中任意一个。BorderLayout

布局的效果如图9-11所示。

图9-11 BorderLayout效果图

13

博学谷——让IT教学更简单,让IT学习更有效

BorderLayout的好处就是可以限定各区域的边界,当用户改变容器窗口大小时,各个组件的相对位置不变。但需要注意的是,向BorderLayout的布局管理器添加组件时,如果不指定添加到哪个区域,则默认添加到CENTER区域,并且每个区域只能放置一个组件,如果向一个区域中添加多个组件时,后放入的组件会覆盖先放入的组件。

案例9-8 GridLayout布局管理器 一、案例描述

1、 考核知识点

编号:00109010

名称:GridLayout布局管理器

2、 练习目标

? 掌握GridLayout布局管理器的使用

3、 需求分析

GridLayout(网格布局管理器)使用纵横线将容器分成n行m列大小相等的网格,每个网格中放置一个组件。为了让初学者熟悉GridLayout布局管理器,本案例将演示GridLayout布局的用法。

4、 设计思路(实现原理)

1) 编写类Example08,创建一个名为\网格布局\的窗体。 2) 设置该窗体为4*3的网格。

3) 循环添加12个按钮到GridLayout中

二、案例实现

import java.awt.*; public class Example08 { }

public static void main(String[] args) { }

Frame f = new Frame(\网格布局\

f.setLayout(new GridLayout(4, 3));// 设置该窗体为4*3的网格 f.setSize(300, 300); // 设置窗体大小 f.setLocation(400, 300);

// 下面的代码是循环添加12个按钮到GridLayout中 for (int i = 1; i <= 12; i++) { }

f.setVisible(true);

Button btn = new Button(\f.add(btn); // 向窗体中添加按钮

运行结果如图9-12所示。

14

博学谷——让IT教学更简单,让IT学习更有效

图9-12 运行结果

三、案例总结

1、GridLayout中有三个构造方法,如下所示。 方法声明 GridLayout() GridLayout(int rows,int cols) GridLayout(int rows,int cols,int hgap,int vgap) 指定容器的行数和列数 指定容器的行数和列数以及组件之间的水平、垂直间距 功能描述 默认只有一行,每个组件占一列 2、GridLayout布局管理器的特点是组件的相对位置不随区域的缩放而改变,但组件的大小会随之改变,组件始终占据网格的整个区域。缺点就是总是忽略组件的最佳大小,所有组件的宽高都相同。

案例9-9 GridBagLayout布局管理器 一、案例描述

1、 考核知识点

编号:00109011

名称:GridBagLayout布局管理器

2、 练习目标

? 掌握GridBagLayout布局管理器的使用。

3、 需求分析

GridBagLayout(网格包布局管理器)是最灵活、最复杂的布局管理器。与GridLayout布局管理器类似,不同的是,它允许网格中的组件大小各不相同,而且允许一个组件跨越一个或者多个网格。为了让初学者熟悉 GridBagLayout的布局,本案例将来演示GridBagLayout的用法。

4、 设计思路(实现原理)

1)定义一个类Layout继承自Frame类 2)使用网格包布局管理器

15


第9章 GUI - 补充案例(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017-2018学年甘肃省平凉市静宁一中高二(上)期中数学试卷(文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: