天天看点

Java Swing 图形化编程之布局管理器 之FlowLayout

 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();
	}

}
           

出来的效果是:

Java Swing 图形化编程之布局管理器 之FlowLayout

如果去掉最后的jf.pack()的那句,则是如下效果:

Java Swing 图形化编程之布局管理器 之FlowLayout

这个可以和别的布局结合起来用。例子就不写了。因为按钮比较多,篇幅比较长。