欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

GUI的三种布局方式

程序员文章站 2022-06-08 16:32:13
...
  1. FlowLayout布局
  2. BorderLayout布局
  3. GridLayout布局
    ** FlowLayout布局:是按钮都是按在一起的, FlowLayout布局有一个参数即按钮的位置左中右**
import java.awt.*;
/**
*@author 作者 Your-Name:
*@version 创建时间:
*类说明:布局
*/
public class LiuSiBuJu {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
       Frame f = new Frame("这是流式布局");
       f.setSize(300,300);
      // f.setLayout(null);
       f.setLayout(new FlowLayout(FlowLayout.LEFT));
       f.setVisible(true);
       Button b1 = new Button("1");
       Button b2 = new Button("2");
       Button b3 = new Button("3");
       f.add(b1);
       f.add(b2);
       f.add(b3);
       
	}

}

如图:我们可以看到都在左边
GUI的三种布局方式** BorderLayout布局:可以指定按钮的位置**

import java.awt.*;
/**
*@author 作者 Your-Name:
*@version 创建时间:
*类说明:
*/
public class Dxnbz {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        Frame f = new Frame("东西南北中布局");
        f.setSize(300,300);
        f.setLocation(200,200);
        f.setVisible(true);
        Button b1 = new Button("东");
        Button b2 = new Button("西");
        Button b3 = new Button("南");
        Button b4 = new Button("北");
        Button b5 = new Button("中");
        f.add(b1,BorderLayout.EAST);
        f.add(b2,BorderLayout.WEST);
        f.add(b3,BorderLayout.SOUTH);
        f.add(b4,BorderLayout.NORTH);
        f.add(b5,BorderLayout.CENTER);

	}

}

GUI的三种布局方式GridLayout布局:里面有两个参数行和列,按钮会自动填充行列的格子

import java.awt.*;
/**
*@author 作者 Your-Name:
*@version 创建时间:
*类说明:
*/
public class TableBuJu {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
     Frame f = new Frame("表格布局");
     Button b1 = new Button("红");
     Button b2 = new Button("黄");
     Button b3 = new Button("蓝");
     Button b4 = new Button("绿");
     Button b5 = new Button("青");
     Button b6 = new Button("靛");
     f.setLayout(new GridLayout(3,2));//三行两列填充
     f.add(b1);
     f.add(b2);
     f.add(b3);
     f.add(b4);
     f.add(b5);
     f.add(b6);
     f.setSize(400,400);
     f.setLocation(100,100);
     f.setVisible(true);
     
     
     
     
	}

}

GUI的三种布局方式综合应用
效果图
GUI的三种布局方式思路:方法1,我们可以首先看成是一个上下结构的即2行1例的布局
GUI的三种布局方式然后我们再看上面的可以在它的上面添加一个面板来放4个按钮,我们可以在面板的左右两边放置一个按钮
GUI的三种布局方式然后中间还有两个按钮,我们可以在中间放置一个面板让它是第三种布局即是2行1列的
GUI的三种布局方式下面的分析方法同上面的

import java.awt.*;
/**
*@author 作者 Your-Name:
*@version 创建时间:
*类说明:
*/
public class Text1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Frame f = new Frame("布局");
		f.setLocation(100,100);
		f.setSize(400,400);
		f.setVisible(true);
		f.setLayout(new GridLayout(2,1));
//		  f.add(b1,BorderLayout.EAST);
//	        f.add(b2,BorderLayout.WEST);
//	        f.add(b3,BorderLayout.SOUTH);
//	        f.add(b4,BorderLayout.NORTH);
//	        f.add(b5,BorderLayout.CENTER);
		// f.setLayout(new GridLayout(3,2));//三行两列填充
		// f.setLayout(new FlowLayout(FlowLayout.LEFT));
		//面板
		Panel p1 = new Panel(new BorderLayout());
		Panel p2 = new Panel(new GridLayout(2,1));
		Panel p3 = new Panel(new BorderLayout());
		Panel p4 = new Panel(new GridLayout(1,2));
		
		Button b1 = new Button("1");
		Button b2 = new Button("1");
		p1.add(b1,BorderLayout.WEST);
		p1.add(b2,BorderLayout.EAST);
		f.add(p1);
		Button b3 = new Button("1");
		Button b4 = new Button("1");
		p2.add(b3);
		p2.add(b4);
		p1.add(p2);
		Button b5 = new Button("1");
		Button b6 = new Button("1");
		p3.add(b5,BorderLayout.WEST);
		p3.add(b6,BorderLayout.EAST);
		Button b7 = new Button("1");
		Button b8 = new Button("1");
		p4.add(b7);
		p4.add(b8);
		p3.add(p4);
		f.add(p3);
		

	}

}

方法2:用定位的方式,需要8个按钮,分别计算它的位置即button的setBounds(x,y,w,h)属性

相关标签: Java