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

GridLayout(网格式布局):

1.GridLayout是网格式布局,它把父组件分成一个表格,默认情况下每个子组件占据一个单元格的空间,每个子组件按添加到父组件的顺序排列在表格中。

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

ComponentOrientation.LEFT_TO_RIGHT

ComponentOrientation.RIGHT_TO_LEFT

3.通过构造方法或 setRows 和 setColumns 方法将行数和列数都设置为非零值时,指定的列数将被忽略。

列数通过指定的行数和布局中的组件总数来确定。因此,例如,如果指定了三行和两列,在布局中添加了九个组件,则它们将显示为三行三列。仅当将行数设置为零时,指定列数才对布局有效。

 

构造方法详细描述:

1.GridLayout():创建具有默认值的网格布局,即每个组件占据一行一列。

2.GridLayout(int rows, int cols):创建具有指定行数和列数的网格布局。

给布局中的所有组件分配相等的大小。rows 和 cols 中的一个可以为零(但不能两者同时为零),这表示可以将任何数目的对象置于行或列中。 参数: rows - 该 rows 具有表示任意行数的值零。 cols - 该 cols 具有表示任意列数的值零。

3.GridLayout(int rows, int cols, int hgap, int vgap):创建具有指定行数和列数的网格布局。

给布局中的所有组件分配相等的大小。此外,将水平和垂直间距设置为指定值。水平间距将置于列与列之间。将垂直间距将置于行与行之间。

rows 和 cols 中的一个可以为零(但不能两者同时为零),这表示可以将任何数目的对象置于行或列中。所有 GridLayout 构造方法都服从这一规定。

参数:

rows - 该 rows 具有表示任意行数的值零

cols - 该 cols 具有表示任意列数的值零

hgap - 水平间距

vgap - 垂直间距

实例:

package src;
import java.awt.*;

import javax.swing.*;

public class GridLayoutDemo extends JFrame {

	private static final long serialVersionUID = 1L;

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

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		GridLayoutDemo frame = new GridLayoutDemo();

		frame.applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);	//按钮按照从右向左方向排列
		Container contentPane = frame.getContentPane();
		contentPane.setLayout(new GridLayout(2,3));
		JButton jbt1 = new JButton("按钮1");
		contentPane.add(jbt1);
		JButton jbt2 = new JButton("按钮2");
		contentPane.add(jbt2);
		JButton jbt3 = new JButton("按钮3");
		contentPane.add(jbt3);
		JButton jbt4 = new JButton("按钮4");
		contentPane.add(jbt4);
		JButton jbt5 = new JButton("按钮5");
		contentPane.add(jbt5);
		JButton jbt6 = new JButton("按钮6");
		contentPane.add(jbt6);
		JButton jbt7 = new JButton("按钮7");
		contentPane.add(jbt7);
		JButton jbt8 = new JButton("按钮8");
		contentPane.add(jbt8);

        frame.setVisible(true);
	}

}
效果图如下: 1.使用GridLayout(0,3)构造函数

2.使用GirdLayout(2,3)构造函数

链接: JAVA进行GUI程序设计之布局管理(上) JAVA进行GUI程序设计之布局管理(中)
posted @ 2011-01-24 10:18  SillyCoder  阅读(328)  评论(0编辑  收藏  举报