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