import java.awt.BorderLayout;//添加awt库
import java.awt.CardLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.JButton;//添加swing库
import javax.swing.JFrame;
import javax.swing.JPanel;
public class LayoutTest extends JFrame{//创建LayoutTest子类继承父类JFrame
JButton btn1,btn2,btn3,btn4,btn5;//定义btn1,btn2,btn3,btn4,btn5
JPanel m;//容器
FlowLayout fLayout;//定义布局方式
GridLayout gLayout;
BorderLayout bLayout;
CardLayout cLayout;
public LayoutTest(String layoutstyle) {//构造函数
super("布局方式: "+layoutstyle);
JPanel m = new JPanel();
FlowLayout f=new FlowLayout(FlowLayout.LEFT);
GridLayout g=new GridLayout(3,2);
BorderLayout b=new BorderLayout();
CardLayout c =new CardLayout(10,10);
if(layoutstyle=="f")//判断用那种布局
m.setLayout(f);
else if(layoutstyle=="g")
m.setLayout(g);
else if(layoutstyle=="b")
m.setLayout(b);
else if(layoutstyle=="c")
m.setLayout(c);
else
System.out.print("布局方式输入错误!");
getContentPane().add(m);//将m添加到界面
btn1=new JButton("按钮1");//创建按钮的对象
btn2=new JButton("按钮2");
btn3=new JButton("按钮3");
btn4=new JButton("按钮4");
btn5=new JButton("按钮5");
if(layoutstyle=="f" || layoutstyle=="g") {//定义布局方法
m.add(btn1);
m.add(btn2);
m.add(btn3);
m.add(btn4);
m.add(btn5);
}
if(layoutstyle=="b" || layoutstyle=="c") {
m.add(btn1,"East");
m.add(btn2,"South");
m.add(btn3,"West");
m.add(btn4,"North");
m.add(BorderLayout.CENTER,btn5);
}
setSize(250,150);//设置界面宽度和高度
setVisible(true);//设置界面的可见性
setDefaultCloseOperation(EXIT_ON_CLOSE);//设置窗口关闭时的默认操作
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new LayoutTest("f");//显示界面
new LayoutTest("g");
new LayoutTest("b");
new LayoutTest("c");
}
}
运行结果:
知识点:
1、布局管理容器
2、FlowLayout布局;BorderLayout布局;CardLayout布局;GridLayout布局