JAVA进行GUI程序设计之布局管理(中)

接上文:JAVA进行GUI程序设计之布局管理(上)

FlowLayout(流式布局):

1.FlowLayout是Panel类的默认布局管理器,它使得按钮呈水平放置,直到同一条线上再也没有适合的按钮。线的对齐方式由 align 属性确定。

可能的值为: LEFT、RIGHT、CENTER、LEADING、TRAILING

2.流的方向取决于容器的 componentOrientation 属性,它可能是以下两个值中的一个:

ComponentOrientation.LEFT_TO_RIGHT

ComponentOrientation.RIGHT_TO_LEFT

3.不改变组件的大小,按组件原有尺寸显示组件,可设置不同的组件间距,行距以及对齐方式。

4.流式布局管理器默认的对齐方式是居中。

构造方法详细描述:

1.FlowLayout()构造一个新的 FlowLayout,它是居中对齐的,默认的水平和垂直间隙是 5 个像素。

2.FlowLayout(int align)构造一个新的 FlowLayout,它具有指定的对齐方式,默认的水平和垂直间隙是 5 个像素。

align 参数的值必须是以下值之一: FlowLayout.LEFT、 FlowLayout.RIGH、 FlowLayout.CENTER、 FlowLayout.LEADING、 FlowLayout.TRAILING。

参数: align - 对齐值

3.FlowLayout(int align,int hgap,int vgap)创建一个新的流式布局管理器,它具有指定的对齐方式以及指定的水平和垂直间隙。

align 参数的值必须是以下值之一: FlowLayout.LEFT、 FlowLayout.RIGHT、 FlowLayout.CENTER、 FlowLayout.LEADING、 FlowLayout.TRAILING。

参数:

align - 对齐值

hgap - 组件之间以及组件与 Container 的边之间的水平间隙

vgap - 组件之间以及组件与 Container 的边之间的垂直间隙

实例:

import java.awt.Button;
import java.awt.ComponentOrientation;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JPanel;

/**
 * @author Aiml
 *
 */
public class FlowLayoutDemo extends JFrame {

	/**
	 *
	 */
	private static final long serialVersionUID = 1L;

	public FlowLayoutDemo(){

		setSize(400,300);
		setTitle("流式布局Demo");
		Toolkit kit = Toolkit.getDefaultToolkit();
		Dimension screenSize = kit.getScreenSize();
		int x=(screenSize.width-400)/2;
		int y=(screenSize.height-300)/2;
		setLocation(x,y);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		

		/**
		 * 创建一个JPanel面板
		 */
		JPanel jpa = new JPanel();

		/**
		 * 设置窗口中全部组件按从右向左的顺序排列
		 */
		jpa.applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);

		/**
		 * 无参的构造函数,居中对齐,水平和垂直间隙是 5 个像素。
		 * 当使用该构造函数的时候,与不写setLayout()函数同样效果。
		 */
	//	jpa.setLayout(new FlowLayout());

		/**
		 * 带对齐方式的构造函数,按指定的对齐方式对齐按钮,水平和垂直间隙是 5 个像素。
		 */
	//	jpa.setLayout(new FlowLayout(FlowLayout.RIGHT));

		/**
		 * 带对齐方式和水平、树枝间隙参数的构造函数,按指定的对齐方式对其按钮,
		 * 并且按钮水平间隙10像素,竖直间隙20像素
		 */
		jpa.setLayout(new FlowLayout(FlowLayout.LEFT,10,20));		

        for(int i = 1; i <= 20; i++){
        	jpa.add(new Button("按钮"+i));
        }

        Container c = this.getContentPane();
        c.add(jpa);
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		FlowLayoutDemo frame = new FlowLayoutDemo();
        frame.setVisible(true);
	}
}
效果图如下: 图一:默认或使用FlowLayout()构造函数

图二:拉伸之后效果:

图三:使用FlowLayout(FlowLayout.RIGHT)构造函数

图四:拉伸后效果

图五:使用FlowLayout(FlowLayout.LEFT,10,20)构造函数

图六:拉伸后效果

posted @ 2010-12-20 21:49  SillyCoder  阅读(385)  评论(0编辑  收藏  举报