package frank;
import java.lang.*;
import java.awt.*;
import static java.awt.BorderLayout.*;
import javax.swing.BoxLayout;
/**
* 布局管理
* */
public class App
{
public static void main(String[] args)
{
Frame f = new Frame("测试窗体");//创建一个窗体,默认布局是BorderLayout布局器
/**
* 之FlowLayout,有点类似于记事本里面输入文字,当输入到末尾的时候就会自动切换到下一行。
* */
/*
//更换Frame的默认布局
f.setLayout(new FlowLayout(FlowLayout.LEFT,20,5));//设置组件排列方向、水平间距,垂直间距。
for(int i =0;i<=10;i++)
{
f.add(new Button("按钮"+i));//添加组件到Frame
}
*/
/**
*BorderLayout布局,五个区域,所以最多只能放置5个组件,如果有个区域没有放置组件,那么会自动的已添加的组件填充到空白地方,从而使布局好看点,当然我们可以在指定的区域放置Panel容器,这样就可以放置更多组件了。
* */
/*
f.setLayout(new BorderLayout(30,5));
f.add(new Button("南"),SOUTH);
f.add(new Button("北"),NORTH);
f.add(new Button("中"));//默认是中
f.add(new Button("东"),EAST);
f.add(new Button("西"),WEST);*/
/**
* GridLayout布局管理器,网格布局,以网格形式布局。
* 下面计算器Frame使用的是BorderLayout,然后里面的组件又使用GridLayout布局,就是嵌套布局器,实际上大部分程序都是嵌套布局器。
*/
/*
f = new Frame("计算器");
Panel pl = new Panel();
pl.add(new TextField(30));
f.add(pl,NORTH);//把pl容器添加到frame上面
Panel p2 = new Panel();
p2.setLayout(new GridLayout(3,5,4,4));//设置,行,列,横向间距,纵向间距
String[] name = {"0","1","2","3","4","5","6","7","8","9","+","-","*","/","."};
for(int i = 0;i<name.length;i++)
{
p2.add(new Button(name[i]));
}
f.add(p2);
*/
/**
* swing为AWT扩展类,保留了一些AWT的特性
* */
/*
f.setLayout(new BoxLayout(f,BoxLayout.Y_AXIS));//垂直布局
//创建两个垂直布局的按钮
f.add(new Button("第一个按钮"));
f.add(new Button("按钮二"));
*/
f.pack();//设置窗体为最佳大小
f.setVisible(true);
}
}