与Windows编程不同,JAVA中GUI组件是使用相对位置来进行布局控制,所以在JAVA进行GUI开发的时候,想像Windows中那样直接对GUI组件进行拖拽摆放,比较困难。
下面介绍三种最常使用的布局管理器:BorderLayout(边框式布局)、FlowLayout(流式布局)、GridLayout(网格式布局)。
BorderLayout(边框式布局):
1.BorderLayout是Frame类的默认布局管理器,布局由东南西北中5个相对位置构成。该布局在调整容器大小时,组件的相对位置不会变化。
2.每个区域只能添加一个组件,如在一个区域中加入了多个组件,那么显示的时候只会显示最后加入的那个。
3.添加组件的时候如果没有指定区域,则默认是CENTER区域。
4.容器缩放时各区域缩放规则: NORTH、SOUTH两个区域可以在水平方向缩放,竖直方向不变; WEST、EAST两个区域可以在竖直方向缩放、水平方向不变; CENTER区域在水平、竖直两个方向均缩放。
实例:
import java.awt.*;
import javax.swing.JFrame;
/**
* @author Aiml
*
*/
public class BorderLayoutDemo extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
public BorderLayoutDemo(){
setSize(400,300);
setTitle("边框式布局Demo");
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int x=(screenSize.width-400)/2;
int y=(screenSize.height-300)/2;
setLocation(x,y);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BorderLayoutDemo frame = new BorderLayoutDemo();
Button bn = new Button("北部区域");
Button bs = new Button("南部区域");
Button bw = new Button("西部区域");
Button be = new Button("东部区域");
Button bc = new Button("中部区域");
frame.add(bn,BorderLayout.NORTH);
frame.add(bs,BorderLayout.SOUTH);
frame.add(bw,BorderLayout.WEST);
frame.add(be,BorderLayout.EAST);
frame.add(bc,BorderLayout.CENTER);
frame.setVisible(true);
}
}
效果图:
放大到全屏: