第十一周课程总结
九宫格布局
(一)实验代码:
package lager;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class cell {
public static void main(String[] args) {
JFrame frame = new JFrame("九宫格"); //实例化窗体对象
frame.setLayout(new FlowLayout(FlowLayout.CENTER,3,3));
//设置窗体中的布局管理器为Flowlayout,所有的组件居中对齐,水平垂直间距都为3
JButton but = null;
for(int i=0;i<9;i++) {
but = new JButton(""+i);
frame.add(but); //加入按钮
}
frame.setSize(150,150); //设置窗体大小
frame.setLocation(250, 300); //设置窗体位置
frame.setVisible(true); //设置窗体可见
}
}
实验结果:
总结:
首先我先总结一下这次作业的感受:
这次作业比较简单,大部分的思路和操作老师都讲了,这一次老师讲了很大的知识量,我还需要一定的时间去熟知。
下面是我所理解和查到的两种布局管理器。
BorderLayout布局管理器:
BorderLayout 也是一种非常简单的布局策略,它把容器内的空间简单地划分为东、西、南、北、中无个区域,
没加入一个组件都应该指明把这个组件加在哪个区域中。 BorderLayout是顶层容器( JFrame, JDialog,
和 JApplet )的默认布局管理器。
有五个位置组件:
这个界面最多只能显示5个控件。加入控件的时候,可以指定加入的方位,默认的情况是加入到中间。
在BorderLayout中整理尺寸是,四周的控件会被调整,调整会按照布局管理器的内部规则计算出应该占多少位置,
然后中间的组件会占去剩下的空间。BorderLayout 是Window,Frame和Dialog的缺省布局管理器.
BorderLayout布局管理器把容器分成5个区域:North,South,East,West和Center,每个区域只能放置一个组件.
在使用 BorderLayout的时候,如果容器的大小发生变化,其变化规律为:组件的相对位置不变,大小发生变化.
例如容器变高了,则North、South 区域不变,West、Center、East区域变高;
如果容器变宽了,West、East区域不变,North、Center、South区域变宽.
不一定所有的区域都有组件,如果四周的区域(West、East、North、South区域)没有组件,
则由Center区域去补充,但是如果 Center区域没有组件,则保持空白.
FlowLayout布局管理器:
流式布局管理器把容器看成一个行集,好象平时在一张纸上写字一样,一行写满就换下一行。
行高是用一行中的控件高度决定的。FlowLayout是所有 JApplet/JApplet的默认布局。
在生成流式布局时能够指定显示的对齐方式,默认情况下是居中(FlowLayout.CENTER)。
在下面的示例中,可以用如下语句指定居左
JPanel panel= new JPanel(new FlowLayout(FlowLayout.LEFT)));
此为小应用程序(Applet)和面板(Panel)的缺省布局管理器,组件从左上角开始,按从左至右的方式排列.其构造函数为:
FlowLayout() //生成一个默认的流式布局,组件在容器里居中,每个组件之间留下5个像素的距离.
FlowLayout(int alinment) //可以设定每行组件的对齐方式.
FlowLayout(int alignment,int horz,int vert) //设定对齐方式并设定组件水平和垂直的距离.
当容器的大小发生变化时,用FlowLayout管理的组件会发生变化,其变化规律是:组件的大小不变,但是相对位置会发生变化.