从GroupLayout的单词意思来看,它是以Group(组)为单位来管理布局,也就是把多个组件(如:JLabel、JButton)按区域划分到不同的Group(组),再根据各个Group(组)相对于水平轴(Horizontal)和垂直轴(Vertical)的排列方式来管理。
下面通过代码来熟悉下它的使用:
import javax.swing.*;
import java.awt.*;
/**
* GroupLayout
* Created by veione on 5/9/16.
*/
public class GroupLayoutCase extends JFrame{
public GroupLayoutCase(){
//创建一个中间容器,并且创建一个GroupLayout布局管理器对象
Container c=getContentPane();
GroupLayout layout=
new GroupLayout(c);
//创建两个普通按钮组件,文本框组件
JButton btn1=
new JButton(
"按钮1");
JButton btn2=
new JButton(
"按钮2");
JTextField text=
new JTextField(
"吻鳄不能");
//创建一个hsg组,将两个按钮以一个一个的添加到组里面
GroupLayout.SequentialGroup hsg=layout.createSequentialGroup();
hsg.addComponent(btn1);
hsg.addComponent(btn2);
GroupLayout.ParallelGroup hpg=layout.createParallelGroup(GroupLayout.Alignment.CENTER);
//创建一个hpg组,将文本框组件和上面的那个组添加到其中,并且将之剧中排列
hpg.addComponent(text).addGroup(hsg);
layout.setHorizontalGroup(hpg);
GroupLayout.ParallelGroup vpg=layout.createParallelGroup();
vpg.addComponent(btn1);
vpg.addComponent(btn2);
GroupLayout.SequentialGroup vsg=layout.createSequentialGroup();
vsg.addComponent(text).addGroup(vpg);
layout.setVerticalGroup(vsg);
setLayout(layout);
setDefaultCloseOperation(Tools.EXIT_ON_CLOSE);
pack();
setVisible(
true);
}
public static void main(String[] args) {
new GroupLayoutCase();
}
}
运行结果如下:
好了,Java布局管理器到此为止!