GroupLayout的单词意思来看,以Group(组)为单位进行管理布局,把多个组件(如:JLable、JButton)按区域划分到不同的Group(组),再根据各个Group(组)相对于水平轴(Horizontal)和垂直轴(Vertical)的排列方式来管理。
publicclassBWF{
publicstaticvoidmain(Stringargs[]){
JFramejf=newJFrame("测试GroupLayout布局管理器");
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanelcontentPane=newJPanel();
GroupLayoutlayout=newGroupLayout(contentPane);
JButtonb1=newJButton("按钮1");
JButtonb2=newJButton("按钮2");
JTextFieldtext=newJTextField("文本");
//创建一个hsg组,将两个按钮一个一个的添加到组里面
GroupLayout.SequentialGrouphsg=layout.createSequentialGroup();
hsg.addComponent(b1);
hsg.addComponent(b2);
//创建一个hpg组,将文本框组件和上面的那个组添加到其中,并且居中排列
GroupLayout.ParallelGrouphpg=layout.createParallelGroup(GroupLayout.Alignment.CENTER);
hpg.addComponent(text).addGroup(hsg);
layout.setHorizontalGroup(hpg);//沿水平线来确定hpg组中两个按钮组件的位置
//创建一个vpg组,按照水平线来排列两个按钮组件的位置
GroupLayout.ParallelGroupvpg=layout.createParallelGroup();
vpg.addComponent(b1);
vpg.addComponent(b2);
GroupLayout.SequentialGroupvsg=layout.createSequentialGroup();
//将文本框组件和前面的容纳两个按钮组件的组同时添加到vsg组中
vsg.addComponent(text).addGroup(vpg);
//沿垂直线来确定vsg中vpg和文本框组件的位置
layout.setVerticalGroup(vsg);
contentPane.setLayout(layout);
jf.setContentPane(contentPane);
jf.pack();
jf.setVisible(true);
}
}
上述实例先将两个按钮组件一个一个地放入到hsg组里,然后将文本框组件和hsg放到hpg组中,按照水平线对hsg中的两个按钮组件的位置进行排列,最后,再按垂直方式排列文本框组件和hsg组的位置。