Java JFrame常用的布局

来源:互联网 发布:千锋java视频全套教程 编辑:程序博客网 时间:2024/05/22 20:41

setLayout(布局对象);  声明布局格式的方式   如:

setLayout(new FlowLayout());

1. FlowLayout布局 

FlowLayout布局是JPanel 的默认布局,组建按照加入的先后顺序从左到右排列,一行排满之后就转到下一行继续从左到右排列 ,每一行都居中排列,水平和垂直的间距都是5个像素,组件设置大小用  set.PreferredSize(Dimension preferredSize) 

例如:

button.setPreferredSize(new Dimension(20,20));

重新设置布局方式: setAlignment(int aligin);   aligin 的取值为 FlowLayout.LEFT,FlowLayout.RIGHT,FlowLayout.CENTER   ;  重新设置水平和垂直的间隙  setHgap(int hgap); setVgap(int vgap);

2.BorderLayout布局

Window型容器的默认布局(JFrame,JDialog)   容器空间简单的划分为东南西北中5个区域,中间的区域最大 ,由BorderLayout 中的静态变量WEST,EAST,SOUTH,NORTH,CENTER表示区域 .有BorderLayout布局的容器con  例:

con.add(b,BorderLayout.EAST);

添加到某一个区域的组件占有整个区域,再添加进来,旧的就会被替换掉 ,只能添加5个组件,5个以上的话使用其他的布局或者容器嵌套.

3.CardLayout布局

组件被层叠的放入容器,最先加入的在最上面,同一时刻容器只能从这些组件中选一个来显示,容器调用add(String s,Component b);的方式将组件b加入容器  s为代号和组件没有必然关系,不同的组件代号不能相同 

调用show(Component con,s)的方法显示代号为s的容器  card.show(con,s);    card.first(con) card.next(con),card.last(con) ,card.previous(con)  分别显示容器con的第一个,下一个,最后一个,上一个 组件

4.GirdLayout布局

把容器分成若干行和若干列的网格区域    构造方法  GirdLayout(int m,int n); 创建布局对象,指定行和列

GridLayout gy =new GridLayout(10,12);

可以添加m*n个组件   用add(Component c)将组件添加进入   ,从第一行第一个开始到最后一行最后一个  (每个网格强制相等)

5.BoxLayout  盒式布局

Box  创建的容器是盒式容器 默认布局是盒式布局并且不允许修改

盒式布局构造方法 BoxLayout(Container con,int axis);axis 的有效值  BoxLayout.X_AXIS, BoxLayout.Y_AXIS.决定盒式布局是行型还是列型    行(列)型组件再多也不会延伸到下一行 (列) ,沿着同一水平线或垂直线

Box 类调用静态方法 createHorizontalBox()   获得一个行型的盒式布局的盒式容器 

Box类 调用静态方法 createVerticalBox()  获得一个列型的盒式布局的盒式容器

Box 调用静态方法 createVerticalStrut(int height)    createHorizontalBox(int width)   得到不可见的Strut对象 设置水平(垂直)的Box之间的间距

6.null 布局 

空布局可以准确的定位组件在容器中的位置和大小 setBounds(int a,int b,int width,int height)  设置位置和本身大小 , a,b 是组件在容器p中的坐标