2.FlowLayout
这种布局管理器的策略也非常简单,它是按照控件加入的先后顺序从左到右排列,一行排满了再换到下一行,然后继续从左到右排列。每一行的组件都是居中排列的。另外如果有些按钮看不到,可以使用方法pack自动调整Frame的大小,使得所有控件都显示出来。FlowLayout布局管理器同样是通过先创建对象、再利用其内置方法和变量来布局的组件。
有三种构造方法:
FlowLayout() :构造一个FlowLayout对象,它是居中对齐的,默认的水平和垂直间隙是五个单位。
FlowLayout(int align):构造一个FlowLayout对象,默认的水平和垂直间隙是五个单位。
FlowLayout(int align,int h,int v):创建一个新的流布局管理器,它具有指定的对齐方式以及指定的水平和垂直间隙。
首先写一个简单的FlowLayout的实例程序:
import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class LayoutTest { /** * @param args */ static final int WIDTH = 300; static final int HEIGHT = 300; public static void main(String[] args) { // TODO Auto-generated method stub JFrame jf = new JFrame("LayoutTest"); jf.setSize(WIDTH,HEIGHT); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setVisible(true); JPanel contentPane = new JPanel(); jf.setContentPane(contentPane); JButton b1 = new JButton("one"); JButton b2 = new JButton("Two"); JButton b3 = new JButton("Three"); JButton b4 = new JButton("Four"); JButton b5 = new JButton("Five"); //将控件布局管理器设置为Flowlayout contentPane.setLayout(new FlowLayout()); contentPane.add(b1); contentPane.add(b2); contentPane.add(b3); contentPane.add(b4); contentPane.add(b5); jf.pack(); } }
出来的效果是:
如果去掉最后的jf.pack()的那句,则是如下效果:
这个可以和别的布局结合起来用。例子就不写了。因为按钮比较多,篇幅比较长。