JAVA入门到精通-第30讲-布局管理器
![](https://img2018.cnblogs.com/blog/1167156/201811/1167156-20181130175649933-1983694221.png)
JFrame默认是边界布局的;
流式布局FlowLayout默认是居中对齐的;
右对齐:
![](https://img2018.cnblogs.com/blog/1167156/201811/1167156-20181130175651439-2091737041.png)
按道理每个按钮可以设置大小;
一旦把布局管理器设置好,按钮大小会自动设置;
![](https://img2018.cnblogs.com/blog/1167156/201811/1167156-20181130175652117-228973494.png)
null设置按钮大小;
![](https://img2018.cnblogs.com/blog/1167156/201811/1167156-20181130175652487-701651746.png)
禁止用户改变窗口大小;
![](https://img2018.cnblogs.com/blog/1167156/201811/1167156-20181130175653032-1641555151.png)
网格布局适合做计算器;
对象数组需要NEW一下;
![](https://img2018.cnblogs.com/blog/1167156/201811/1167156-20181130175653292-838193308.png)
设置网格布局:
(几行,几列)
![](https://img2018.cnblogs.com/blog/1167156/201811/1167156-20181130175653468-284584688.png)
![](https://img2018.cnblogs.com/blog/1167156/201811/1167156-20181130175654109-1438137934.png)
因为不是简单数组,需要new一个;
![](https://img2018.cnblogs.com/blog/1167156/201811/1167156-20181130175654618-1185367301.png)
![](https://img2018.cnblogs.com/blog/1167156/201811/1167156-20181130175654951-126427668.png)
边界布局BorderLayout--注意事项
1、不是五个部分都必需添加;
2、中部组件会自动调节大小;
3、JFrame,Jdialog默认布局管理器就是BorderLayout
三大常用布局管理器--流式布局
流式布局FlowLayout--介绍
FlowLayout布局,按照组件的添加次序将按钮组件(当然也可以是别的组件)从左到右放置在容器中。当到达容器的边界时,组件将放置到下一行中。FlowLayout可以以左对齐、居中对齐、以右对齐的方式排列组件。
xxxxxxxxxx
1
53
1
流式布局FlowLayout--使用[Window003.java]
2
/**
3
* 流式布局FlowLayout使用演示
4
* 1、继承JFrame
5
* 2、定义你需要的各个组件
6
* 3、创建组件(在构造函数中组件)
7
* 4、添加组件
8
* 5、对窗体设置
9
* 6、显示窗体
10
*/
11
import java.awt.*;
12
import javax.swing.*;
13
public class Window003 extends JFrame{
14
//定义组件
15
JButton jb1,jb2,jb3,jb4,jb5,jb6;
16
17
public static void main(String[] args) {
18
Window003 win=new Window003();
19
}
20
21
public Window003(){
22
//创建组件
23
jb1=new JButton("关羽");
24
jb2=new JButton("张飞");
25
jb3=new JButton("赵云");
26
jb4=new JButton("马超");
27
jb5=new JButton("黄忠");
28
jb6=new JButton("魏延");
29
30
//添加各个组件
31
this.add(jb1);
32
this.add(jb2);
33
this.add(jb3);
34
this.add(jb4);
35
this.add(jb5);
36
this.add(jb6);
37
38
//设置布局管理器,流式布局默认为居中对齐
39
this.setLayout(new FlowLayout(FlowLayout.LEFT));
40
//new FlowLayout(FlowLayout.LEFT)流式布局,(FlowLayout.??)??可以设置为不同方式对齐。
41
//设置窗体属性
42
this.setTitle("流式布局演示");//窗体标题名称
43
this.setSize(300, 200);//窗体尺寸
44
this.setLocation(200, 200);//窗体在屏幕打开时的初始位置
45
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出窗体后将JFrame同时关闭
46
47
//禁止用户改变窗体大小
48
this.setResizable(false);
49
50
//显示窗体
51
this.setVisible(true);
52
}
53
}
------------------------------------------------------------------------------
流式布局FlowLayout--注意事项
1、不限制他所管理的组件大小,允许他们有最佳大小
2、当容器缩放时,组件的位置可能变化,但组件的大小不变。
3、默认组件是居中对齐,可以通过FlowLayout(intalign)函数来指定对齐方式。
![](https://img2018.cnblogs.com/blog/1167156/201811/1167156-20181130175655412-794851918.png)
---------------------------------------------------------------------------------
三大常用布局管理器--网格
网格布局GridLayout--介绍
GridLayout布局,听其名而知其意,它将容器分割成多行多列,组件被填充到每个网格中,添加到容器中的组件首先放置在左上角的网格中,然后从左到右放置其它的组件,当占满该行的所有网格后,接着继续在下一行从左到右放置组件。
网格布局GridLayout--使用[Window004.java]
1
/**
2
* 网格布局GridLayout使用演示
3
* 1、继承JFrame
4
* 2、定义你需要的各个组件
5
* 3、创建组件(在构造函数中组件)
6
* 4、添加组件
7
* 5、对窗体设置
8
* 6、显示窗体
9
*/
10
import java.awt.*;
11
import javax.swing.*;
12
public class Window004 extends JFrame{
13
//定义组件
14
int size=9;
15
JButton jbs[]=new JButton[size];
16
17
public static void main(String[] args) {
18
Window004 win=new Window004();
19
}
20
21
public Window004(){
22
//创建组件
23
for(int i=0;i<size;i++){
24
jbs[i]=new JButton(String.valueOf(i+1));
25
}
26
27
//添加各个组件
28
for(int i=0;i<size;i++){
29
this.add(jbs[i]);
30
}
31
32
//设置网格布局管理器
33
this.setLayout(new GridLayout(3,3,10,10));//new GridLayout(行,列)设置布局有几行几列
34
35
//设置窗体属性
36
this.setTitle("网格布局演示");//窗体标题名称
37
this.setSize(300, 200);//窗体尺寸
38
this.setLocation(200, 200);//窗体在屏幕打开时的初始位置
39
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出窗体后将JFrame同时关闭
40
41
//禁止用户改变窗体大小
42
this.setResizable(false);
43
44
//显示窗体
45
this.setVisible(true);
46
}
47
}
------------------------------------------------------------------------------
网格布局GridLayout--注意事项
1、组件的相对位置不随容器的缩放而变化,但大小会变化;
2、所有组件的大小相同;
3、可以通过GridLayout(int rows,int cols,int hgap,int vgap)来指定网格的行/列,水平间隙/垂直间隙。
参数说明:rows:行数/cols:列数/hgap:垂直间隙/vgap:水平间隙
三大常用布局管理器--小结
开发GUI程序步骤
1、继承JFrame
2、定义需要的组件
3、创建组件
4、设置布局管理器
5、添加组件
6、显示窗体