JAVA入门到精通-第30讲-布局管理器

本文深入探讨Java Swing中常用的布局管理器,包括流式布局FlowLayout、网格布局GridLayout及边界布局BorderLayout的特点与使用方法。通过实例代码展示了如何设置布局管理器、组件添加及窗体属性,帮助读者掌握Swing布局技巧。
1167156-20181130175649933-1983694221.png
 JFrame默认是边界布局的;
 流式布局FlowLayout默认是居中对齐的;

 右对齐:
1167156-20181130175650813-994195000.png
1167156-20181130175651118-190983975.png
 
  1167156-20181130175651439-2091737041.png
  按道理每个按钮可以设置大小;
  一旦把布局管理器设置好,按钮大小会自动设置;

  1167156-20181130175652117-228973494.png
  null设置按钮大小;

    1167156-20181130175652487-701651746.png  
   禁止用户改变窗口大小;
  1167156-20181130175653032-1641555151.png
  网格布局适合做计算器;

  对象数组需要NEW一下;
1167156-20181130175653292-838193308.png

设置网格布局:
(几行,几列)
1167156-20181130175653468-284584688.png
  1167156-20181130175653671-123147111.png
  1167156-20181130175653908-369037753.png
 运用for循环;
1167156-20181130175654109-1438137934.png
 因为不是简单数组,需要new一个;
1167156-20181130175654618-1185367301.png
 
1167156-20181130175654951-126427668.png
 
边界布局BorderLayout--注意事项
1、不是五个部分都必需添加;
2、中部组件会自动调节大小;
3、JFrame,Jdialog默认布局管理器就是BorderLayout

三大常用布局管理器--流式布局
流式布局FlowLayout--介绍
FlowLayout布局,按照组件的添加次序将按钮组件(当然也可以是别的组件)从左到右放置在容器中。当到达容器的边界时,组件将放置到下一行中。 FlowLayout可以以左对齐、居中对齐、以右对齐的方式排列组件。

流式布局FlowLayout--使用[Window003.java] /** * 流式布局FlowLayout使用演示 * 1、继承JFrame * 2、定义你需要的各个组件 * 3、创建组件(在构造函数中组件) * 4、添加组件 * 5、对窗体设置 * 6、显示窗体 */ import java.awt.*; import javax.swing.*; public class Window003 extends JFrame{ //定义组件 JButton jb1,jb2,jb3,jb4,jb5,jb6; public static void main(String[] args) { Window003 win=new Window003(); } public Window003(){ //创建组件 jb1=new JButton("关羽"); jb2=new JButton("张飞"); jb3=new JButton("赵云"); jb4=new JButton("马超"); jb5=new JButton("黄忠"); jb6=new JButton("魏延"); //添加各个组件 this.add(jb1); this.add(jb2); this.add(jb3); this.add(jb4); this.add(jb5); this.add(jb6); //设置布局管理器,流式布局默认为居中对齐 this.setLayout(new FlowLayout(FlowLayout.LEFT)); //new FlowLayout(FlowLayout.LEFT)流式布局,(FlowLayout.??)??可以设置为不同方式对齐。 //设置窗体属性 this.setTitle("流式布局演示");//窗体标题名称 this.setSize(300, 200);//窗体尺寸 this.setLocation(200, 200);//窗体在屏幕打开时的初始位置 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出窗体后将JFrame同时关闭 //禁止用户改变窗体大小 this.setResizable(false); //显示窗体 this.setVisible(true); } }
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)函数来指定对齐方式。
1167156-20181130175655412-794851918.png
 ---------------------------------------------------------------------------------
三大常用布局管理器--网格
网格布局GridLayout--介绍
GridLayout布局,听其名而知其意,它将容器分割成多行多列,组件被填充到每个网格中,添加到容器中的组件首先放置在左上角的网格中,然后从左到右放置其它的组件,当占满该行的所有网格后,接着继续在下一行从左到右放置组件。

网格布局GridLayout--使用[Window004.java]
/** * 网格布局GridLayout使用演示 * 1、继承JFrame * 2、定义你需要的各个组件 * 3、创建组件(在构造函数中组件) * 4、添加组件 * 5、对窗体设置 * 6、显示窗体 */ import java.awt.*; import javax.swing.*; public class Window004 extends JFrame{ //定义组件 int size=9; JButton jbs[]=new JButton[size]; public static void main(String[] args) { Window004 win=new Window004(); } public Window004(){ //创建组件 for(int i=0;i<size;i++){ jbs[i]=new JButton(String.valueOf(i+1)); } //添加各个组件 for(int i=0;i<size;i++){ this.add(jbs[i]); } //设置网格布局管理器 this.setLayout(new GridLayout(3,3,10,10));//new GridLayout(行,列)设置布局有几行几列 //设置窗体属性 this.setTitle("网格布局演示");//窗体标题名称 this.setSize(300, 200);//窗体尺寸 this.setLocation(200, 200);//窗体在屏幕打开时的初始位置 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出窗体后将JFrame同时关闭 //禁止用户改变窗体大小 this.setResizable(false); //显示窗体 this.setVisible(true); } }
 
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
}
  1167156-20181130175655881-699396370.png
 
------------------------------------------------------------------------------
网格布局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、显示窗体

 








转载于:https://www.cnblogs.com/xuxaut-558/p/10045679.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值