当前课程知识点:Java程序设计 > 第七章 图形用户界面 > 7.4-布局管理 > 布局管理
大家好欢迎回来继续学习
JAVA语言程序设计
这一节我们学习布局管理
什么是布局管理呢
我们想想如果我们要在窗口中
放置很多不同的组件
那么怎么设计
这些组件的位置呢
是不是要每一个
我们都要精确的
去给它的坐标做定位呀等等
是不是一定要这么麻烦呢
JAVA给我们提供了
很便利的一种工具
叫做布局管理器
用布局管理器
我们就可以按照某些规则
对组件进行自动的布局
而且当窗口大小变化的时候
它也会自动去适应
这个就是非常方便了
JAVA中的容器对象
都有setLayout方法
我们可以调用setLayout方法
来设置在这个容器上面
放置的下级的组件该怎么布局
那么它需要一个
布局管理器对象作为参数
比如说我们获得了
一个顶层容器以后
比如说这个ContentPane
那我们就可以调用
它的setLayout方法
如果我们需要按照
某种预定义好的规则
比如说FlowLayout这种规则
对组件进行布局的话
我们就可以用一个
FlowLayout对象做参数
至于FlowLayout是什么
接下来马上我们就会看到
它是JAVA里面
预定义好的一种布局
那么使用布局管理器
我们就可以很方便快捷的
即使没有GUI的这种设计器
我们就是手写代码的话
也可以很方便快捷的
把这些图形界面的组件
布局到窗口里面去
如果窗口改变大小的话
它会自己重新适应
在JAVA中比较常用的
几个布局管理器的类
有这个BorderLauout
FlowLayout GridLayout CardLayout
还有GridBagLayout
BoxLayout springLayout
还有更多的布局管理器
那么这些是相对比较常用
比较基础的几个
那比如说像内容面板
ContentPane它默认使用的
就是BorderLauout
BorderLauout可以将这个区域
分成东西南北中几个部分
接下来我就通过几个
图形界面的布局的事例
让大家感受一下
这些不同的预定义好的布局
它们是什么样子的
我们看这个就是BorderLauout
它将组件放置到五个区域里面
分成东西南北中
这个是FlowLayout
那么也是Jpanel
这种中间容器
它默认使用的布局管理器
也就是它简单的
将组件一字排开
如果说宽度不够
它会自动换行
重新开始新的一行
这个GridLayout
就是按照指定的行数和列数
来划分格子
划分成等分的格子
然后这些组件
比如说按纽
就被排到这些格子里面去
这个CardLayout
是很有意思的
如果说你的窗口的地方
比较小的话
我们可以像卡片一样
来管理这些界面的组件
我们看到这个里面
首先我们设计了一个下拉列表
那么拉下来以后可以选
你要哪张卡片
比如说你选了这个JButton
那放置着button
也就是按纽的这张卡片
就被移到前面来显示了
如果你是选择了
JTextField这个选项
那么放置文本区域的这张卡片
就被切换到前面来了
再看这个GridBagLayout
它也是网格的
这一点好像类似于GridLayout
但是它不是说
每个组件的大小必须相等
它是划分成网格
但是你又可以指定
每个组件它分别占多少行列
所以可以有的占的地方更大一点
有的更小一点
那么就更灵活一些
BoxLayout
好像跟FlowLayout很像
FlowLayout
我们记得它是横向一字排开
而BoxLayout
它是纵向排一条
一个竖条下来
但是它可以设计
组件的对齐方式
最大最小 优选尺寸这些
还有SpringLayout
那就更灵活了
它能够精确的指定
组件之间的距离
这一节我们初步了解了一下
布局管理的概念
我们知道了在JAVA中
我们可以用预定义好的
这些布局管理器
来排布图形界面上的这些组件
这样的话使我们写程序
就更方便一些
但是大家还没有看到代码实例
为什么呢
因为如果这个代码中
涉及到比如说按纽
下拉列表这些组件的话
那势必就要涉及到
一旦我与这些组件交互
那么哪段代码来响应它呢
这就需要了解
事件处理的机制
所以在我们了解了
事件处理的机制之后
我还会给大家看例题
那个时候我还会用
CardLayout这个例子
给大家看看代码
-1.0-导学
--1.0-导学
-1.1-Java与面向对象程序设计简介
--第一章 Java语言基础知识--1.1-Java与面向对象程序设计简介
-1.2-基本数据类型与表达式
-第一章 Java语言基础知识--1.2-基本数据类型与表达式
-1.3-数组
--1.3.1-数组
-第一章 Java语言基础知识--1.3-数组
-1.4-算法的流程控制
--第一章 Java语言基础知识--1.4-算法的流程控制
-1.5-第一章小结
-第一章编程练习题
-课件
--外部链接
-Java环境配置、Eclipse使用、Helloworld程序详解
--使用eclipse建立Java项目、编写和运行Java程序
-Java数据类型
--Java整数类型
--Java浮点类型
--数据类型实战
--数据类型转换
--Java强制类型转换精度损失示例与表达式中的数据类型转换
-Java数组
-Java变量
--Java的变量
-命令行参数
--命令行参数的介绍
-2.0-导学
--2.0-导学
-2.1-面向对象方法的特性
--第二章 类与对象--2.1-面向对象方法的特性
-2.2-1-类声明与对象创建
--第二章 类与对象--2.2-1-类声明与对象创建
-2.2-2-数据成员
--第二章 类与对象--2.2-2-数据成员
-2.2-3-方法成员
--第二章 类与对象--2.2-3-方法成员
-2.2-4-包
--2.2-4-包
--第二章 类与对象--2.2-4-包
-2.2-5-类的访问权限控制
--第二章 类与对象--2.2-5-类的访问权限控制
-2.3-1-对象初始化
--第二章 类与对象--2.3-1-对象初始化
-2.3-2-内存回收
--第二章 类与对象--2.3-2-内存回收
-2.4-枚举类
--2.4-枚举类
--第二章 类与对象--2.4-枚举类
-2.5-应用举例
--2.5-应用举例
-2.6-第2章小结
-第二章编程练习题
-课件
--第二章课件
-3.0-导学
--3.0-导学
-3.1.1-3.1.2-类继承的概念和语法
--第三章 类的重用--3.1.1-3.1.2-类继承的概念和语法
-3.1.3-隐藏和覆盖
--第三章 类的重用--3.1.3-隐藏和覆盖
-3.2-Object 类
--第三章 类的重用--3.2-Object 类
-3.3-终结类与终结方法
--第三章 类的重用--3.3-终结类与终结方法
-3.4-抽象类
--3.4-抽象类
--第三章 类的重用--3.4-抽象类
-3.5-泛型
--3.5-泛型
--第三章 类的重用--3.5-泛型
-3.6-类的组合
--3.6-类的组合
-3.7-小结
--3.7-小结
-第三章编程练习题
-课件
--课件
-4.0-导学
--导学
-4.1-接口
--接口
--第四章 接口与多态--4.1-接口
-4.2.1-4.2.2-类型转换
--类型转换
--第四章 接口与多态--4.2.1-4.2.2-类型转换
-4.2.3-方法的查找
--方法的查找
--第四章 接口与多态--4.2.3-方法的查找
-4.3-多态的概念
--多态的概念
--第四章 接口与多态--4.3-多态的概念
-4.4-多态的应用举例
--多态的应用举例
--第四章 接口与多态--4.4-多态的应用举例
-4.5-构造方法与多态性
--构造方法和多态性
--第四章 接口与多态--4.5-构造方法与多态性
-4.6-本章小结
--本章小结
-第四章编程作业
-课件
--课件
-5.0-导学
--5.0-导学
-5.1.1-5.1.2-异常处理的概念
--第五章 输入输出--5.1.1-5.1.2-异常处理的概念
-5.1.3-5.1.5-异常的处理
--第五章 输入输出--5.1.3-5.1.5-异常的处理
-5.2-输入输出流的概念
--输入输出流的概念
--第五章 输入输出--5.2-输入输出流的概念
-5.3.1-写文本文件
--写文本文件
--第五章 输入输出--5.3.1-写文本文件
-5.3.2-读文本文件
--读文本文件
--第五章 输入输出--5.3.2-读文本文件
-5.3.3-写二进制文件
--写二进制文件
--第五章 输入输出--5.3.3-写二进制文件
-5.3.4-读二进制文件
--读二进制文件
-5.3.5-File类
--File类
-5.3.6-处理压缩文件
--处理压缩文件
-5.3.7-对象序列化
--对象序列化
-5.3.8-随机文件读写
--随机文件读写
-5.4-本章小结
--本章小结
-课件
--课件
-6.0-导学
--导学
-6.1-Java集合框架介绍
--第六章 对象群体的组织--6.1-Java集合框架介绍
-6.2-主要接口及常用的实现类
--第六章 对象群体的组织--6.2-主要接口及常用的实现类
-6.3-常用算法
--常用算法
-6.4-数组实用方法
-6.5-基于动态数组的类型(Vector, ArrayList)
--基于动态数组的类型(Vector, ArrayList)
-6.6-遍历Collection
-6.7-Map接口及其实现
-6.8-第6章小结
--第6章小结
-课件
--课件
-7.0-导学
--导学
-7.1-绘图
--绘图
-7.2-Swing基础
--Swing基础
-7.3-Swing的层次
--Swing的层次
-7.4-布局管理
--布局管理
-7.5-内部类
--内部类
-7.6-事件处理的基本概念
-7.7-事件派发机制
--事件派发机制
-7.8-顶层容器
--7.8-顶层容器
-7.9-中间层容器(一)
-7.10-中间层容器(二)
-7.11-原子组件(一)
-7.12-原子组件(二)
-7.13-原子组件(三)
-7.14-其它Swing特性
-7.15-第7章小结
-课件
--课件