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程序设计之布局管理(中)