GroupLayout的單詞意思來(lái)看,以Group(組)為單位進(jìn)行管理布局,把多個(gè)組件(如:JLable、JButton)按區(qū)域劃分到不同的Group(組),再根據(jù)各個(gè)Group(組)相對(duì)于水平軸(Horizontal)和垂直軸(Vertical)的排列方式來(lái)管理。
publicclassBWF{
publicstaticvoidmain(Stringargs[]){
JFramejf=newJFrame("測(cè)試GroupLayout布局管理器");
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanelcontentPane=newJPanel();
GroupLayoutlayout=newGroupLayout(contentPane);
JButtonb1=newJButton("按鈕1");
JButtonb2=newJButton("按鈕2");
JTextFieldtext=newJTextField("文本");
//創(chuàng)建一個(gè)hsg組,將兩個(gè)按鈕一個(gè)一個(gè)的添加到組里面
GroupLayout.SequentialGrouphsg=layout.createSequentialGroup();
hsg.addComponent(b1);
hsg.addComponent(b2);
//創(chuàng)建一個(gè)hpg組,將文本框組件和上面的那個(gè)組添加到其中,并且居中排列
GroupLayout.ParallelGrouphpg=layout.createParallelGroup(GroupLayout.Alignment.CENTER);
hpg.addComponent(text).addGroup(hsg);
layout.setHorizontalGroup(hpg);//沿水平線(xiàn)來(lái)確定hpg組中兩個(gè)按鈕組件的位置
//創(chuàng)建一個(gè)vpg組,按照水平線(xiàn)來(lái)排列兩個(gè)按鈕組件的位置
GroupLayout.ParallelGroupvpg=layout.createParallelGroup();
vpg.addComponent(b1);
vpg.addComponent(b2);
GroupLayout.SequentialGroupvsg=layout.createSequentialGroup();
//將文本框組件和前面的容納兩個(gè)按鈕組件的組同時(shí)添加到vsg組中
vsg.addComponent(text).addGroup(vpg);
//沿垂直線(xiàn)來(lái)確定vsg中vpg和文本框組件的位置
layout.setVerticalGroup(vsg);
contentPane.setLayout(layout);
jf.setContentPane(contentPane);
jf.pack();
jf.setVisible(true);
}
}
上述實(shí)例先將兩個(gè)按鈕組件一個(gè)一個(gè)地放入到hsg組里,然后將文本框組件和hsg放到hpg組中,按照水平線(xiàn)對(duì)hsg中的兩個(gè)按鈕組件的位置進(jìn)行排列,最后,再按垂直方式排列文本框組件和hsg組的位置。