Swing学习----------java的布局管理学习总结(一)

最近java学习了击中布局管理,现来依此总结其各自特点:

  1.FlowLayout布局管理:

      a.FlowLayout布局规律:从上到下,从左到右,根据框架的长和宽,组件从第一行依此向右排列,如果长度不够则自动排列到下一行

      b.如果在程序中使用了FLowLayout布局,就不能再设置组件的位置

      c.使用无参的FlowLayout()方法添加组件,默认是居中排列的,我们可以看到JAVA源码中是这样定义无参的FlowLayout方法的:

      d.Panel类的默认布局是使用FlowLayout

 

           后面添加的组件是每次把上一次添加的往左边挤,可以通过设置FlowLayout的参数来确定排列方法,整个流布局的示例代码如下:
   

public test(){
		/**
		 * BorderLayout布局学习
		 */
		
		this.setTitle("布局管理器的学习");
		this.setSize(300, 400);
		this.setLocation(400, 300);
		
		this.setLayout(new FlowLayout());
		
		JButton btn1=new JButton("button1");
		JButton btn2=new JButton("button2");
		JButton btn3=new JButton("button3");
		JButton btn4=new JButton("button4");
		JButton btn5=new JButton("button5");
		
		this.add(btn1);
		this.add(btn2);
		this.add(btn3);
		this.add(btn4);
		this.add(btn5);
		
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
	}
	
	public static void main(String[] args) {
		new test();
	}
	

测试结果如下:

                                             


   2.BorderLayout布局管理

       a.在JFrame中,默认布局是使用BorderLayout

       b.BorderLayout布局管理器将容器划分为东南西北中五个区域,如果在使用add方法添加组件时没有指定插入的位置,则默认把所有组件都放置到中部着一个位置,并且后放的组件会覆盖之前的组件,所以最终看到的是最后放置的组件,如下图所示:


public void testBorderLayout(){
		this.setTitle("布局管理器的学习");
		this.setSize(300, 400);
		this.setLocation(400, 300);
		
		this.setLayout(new BorderLayout());
		
		JButton btn1=new JButton("button1");
		JButton btn2=new JButton("button2");
		JButton btn3=new JButton("button3");
		JButton btn4=new JButton("button4");
		JButton btn5=new JButton("button5");
		
		this.add(btn1);
		this.add(btn2);
		this.add(btn3);
		this.add(btn4);
		this.add(btn5);
		
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
	}
        c.如果改变容器的大小,四边的组件的长度或者宽度不变,中间组件的长度和宽度随着容器大小变化,演示如图:

public void testBorderLayout(){
		this.setTitle("布局管理器的学习");
		this.setSize(300, 200);
		this.setLocation(400, 300);
		
		this.setLayout(new BorderLayout());
		
		JButton btn1=new JButton("button1");
		JButton btn2=new JButton("button2");
		JButton btn3=new JButton("button3");
		JButton btn4=new JButton("button4");
		JButton btn5=new JButton("button5");
		
		this.add(btn1,"North");
		this.add(btn2,"West");
		this.add(btn3,"East");
		this.add(btn4,"South");
		this.add(btn5,"Center");
		
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
	}

                                                  

      d.如果东南西北某个方向不添加组件,将会由其他三个相连的组件占据,但是如果中部不添加组件,会把中部空出来,演示如图:


                                 


    3.GridLayout布局管理

           a.GridLayout将容器划分为大小相等的若干行列的网格,组件大小随着容器的大小变化而变化,演示及代码如下:

public void testGridLayout(){
		this.setTitle("布局管理器的学习");
		this.setSize(300, 200);
		this.setLocation(400, 300);
		
		this.setLayout(new GridLayout(3,3));
		
		JButton[] btn=new JButton[9];
		
		for(int i=0;i<btn.length;i++){
			btn[i]=new JButton(i+"");
			this.add(btn[i]);
		}
		
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
	}

                                                       

           b.GridLayout的排列规则是行优先,例如一个3x3的网格,首先第1个组件填充第1行,第2个组件填充第2行,第3个组件填充第3行,第4个组件添加时,把第1,2个组件挤到第1行,第3个和第4个就占据第2行。以此类推,第5,6个组件填充第三行,当第7个组件添加时,第1,2,3个组件就占据了第一行,后面的就不说了......

           d.GridLayout在添加组件的时候,在add方法中设置插入的位置可以改变组件的位置,网格第一个组件只有默认位置0可以占据,第二个组件有0和1两个位置可以填充,依次类推。如果填写一个错误的位置,如:第三个组件填写插入的位置为3,程序会报错。当后面的组件占据前面的组件的位置时,被占据的组件往后移动一个位置,其他的依次往后移动一个位置。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小胖墩有点瘦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值