java GUI设计和布局(二)

2014-11-24 07:56:09 · 作者: · 浏览: 2
s FlowLayoutDemo{
public static void main(String[] args) {
Frame f = new Frame("流动布局");
Button b1 = new Button("按钮1");
Button b2 = new Button("按钮2");
Button b3 = new Button("按钮3");

f.setLayout(new FlowLayout());
f.add(b1);
f.add(b2);
f.add(b3);

f.setSize(200,300);
f.setVisible(true);
}
}
import java.awt.*;
public class FlowLayoutDemo{
public static void main(String[] args) {
Frame f = new Frame("流动布局");
Button b1 = new Button("按钮1");
Button b2 = new Button("按钮2");
Button b3 = new Button("按钮3");

f.setLayout(new FlowLayout());
f.add(b1);
f.add(b2);
f.add(b3);

f.setSize(200,300);
f.setVisible(true);
}
}

\

BorderLayout:边界布局,是Window及其子类类型容器的默认布局管理器。
布局效果:将整个容器范围划分成East、West、South、North、Center五个区域,组件只能被添加到指定的区域。
在使用边界布局的容器中,组件的尺寸也被布局管理器强行控制,即与其所在区域的尺寸相同。
每个区只能加入一个组件,如加入多个,先前的组件会被抛弃 www.2cto.com
当容器的尺寸发生变化时,其中各组件相对位置不变,尺寸随所在区域进行缩放调整;
调整原则:北、南两个区域只能在水平方向缩放(宽度可调),东、西两个区域只能在垂直方向缩放(高度可调),中部区域都可缩放。
构造方法
public BorderLayout()
public BorderLayout(int hgap,int vgap) :水平和垂直间距
5个区域:
BorderLayout.EAST
BorderLayout.WEST

BorderLayout.SOUTH
BorderLayout.NOUTH

BorderLayout.CENTER

f.add(btnNorth,"North"); = f.add(BorderLayout.NOUTH);[java] view plaincopyprint import java.awt.*;

public class BorderLayoutDemo extends Frame {
Button bNorth,bSouth,bWest,bEast,bCenter;
public BorderLayoutDemo(){
super("边框布局");
bNorth = new Button("按钮1");
bSouth = new Button("按钮2");
bWest = new Button("按钮3");
bEast = new Button("按钮4");
bCenter = new Button("按钮5");
add(bNorth,"North");
add(bSouth,"South");
add(bWest,"West");
add(bEast,"East");
add(bCenter,"Center");
setBounds(200,200,300,300);
setVisible(true);
}
public static void main(String[] args){
new BorderLayoutDemo();
}
}
import java.awt.*;

public class BorderLayoutDemo extends Frame {
Button bNorth,bSouth,bWest,bEast,bCenter;
public BorderLayoutDemo(){
super("边框布局");
bNorth = new Button("按钮1");
bSouth = new Button("按钮2");
bWest = new Button("按钮3");
bEast = new Button("按钮4");
bCenter = new Button("按钮5");
add(bNorth,"North");
add(bSouth,"South");
add(bWest,"West");
add(bEast,"East");
add(bCenter,"Center");
setBounds(200,200,300,300);
setVisible(true);
}
public static void main(String[] args){
new BorderLayoutDemo();
}
}

\

GridLayout:网格布局


  • 布局效果:将容器区域划分成规则的矩形网格,每个单元格区域大小相等。组件被添加到每个单元格中,按组件加入顺序先从左到右填满一行后换行,行间从上到下。
  • 行数为设置值,列数则通过指定的行数和布局中的组件总数来进行调整
  • 正常情况下使用GridLayout布局时,向容器中加入的组件数目应与容器划分出来的单元格总数相等,但假如出现两者数目不等的情况,程序也不会出错,而是保证行数为设置值,列数则通过指定的行数和布局中的组件总数来进行调整。
  • 构造方法
    • public GridLayout()
    • public GridLayout(int rows,int cols)
    • public GridLayout(int rows,int cols,int hgap,int vgap):行数,列数,水平间距,垂直间距示例



import java.awt.*;
public class GridLayoutDemo extends Frame {
Button[] b = new Button[5];
public GridLayoutDemo(){
super("网格布局");
for(int i=0; i b[i] = new Button("按钮"+i);
}
setLayout(new GridLayout(3,2));
add(b[0]);
add(b[1]);
add(b[2]);
add(b[3]);
add(b[4]);
pack();
setSize(300,10