サンプル
例1:GroupLayoutDemo.java
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.SequentialGroup;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class GroupLayoutDemo {
public static void main(String[] args) {
JFrame frame = new JFrame("GroupLayout Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
JLabel lastNameLabel = new JLabel("Last Name :");
JLabel firstNameLabel = new JLabel("First Name : ");
JTextField lastNameField = new JTextField(10);
JTextField firstNameField = new JTextField(10);
// GroupLayout
GroupLayout groupLayout = new GroupLayout(panel);
panel.setLayout(groupLayout);
// 水平方向のグループ
SequentialGroup horizontalGroup = groupLayout.createSequentialGroup();
horizontalGroup.addGroup(groupLayout.createParallelGroup().addComponent(lastNameLabel).addComponent(firstNameLabel));
horizontalGroup.addGroup(groupLayout.createParallelGroup().addComponent(lastNameField).addComponent(firstNameField));
groupLayout.setHorizontalGroup(horizontalGroup);
// 垂直方向のグループ
SequentialGroup verticalGroup = groupLayout.createSequentialGroup();
verticalGroup.addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(lastNameLabel)
.addComponent(lastNameField));
verticalGroup.addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(firstNameLabel)
.addComponent(firstNameField));
groupLayout.setVerticalGroup(verticalGroup);
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
}
例2:GroupLayoutDemo2.java
グループ項目を線引きして表示import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.Border; public class GroupLayoutDemo2 { public static void main(String[] args) { JFrame frame = new JFrame("GroupLayout Demo2"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // GridBagLayout JPanel panel = new JPanel(new GridBagLayout()); JTextField textField1 = new JTextField(); JTextField textField2 = new JTextField(); Border inside = BorderFactory.createEmptyBorder(10, 5 + 2, 10, 10 + 2); Border outside = BorderFactory.createTitledBorder("Group Title"); panel.setBorder(BorderFactory.createCompoundBorder(outside, inside)); GridBagConstraints gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridheight = 1; gridBagConstraints.gridx = 0; gridBagConstraints.insets = new Insets(5, 5, 5, 0); gridBagConstraints.anchor = GridBagConstraints.WEST; gridBagConstraints.gridy = 0; panel.add(new JLabel("Item1 :"), gridBagConstraints); gridBagConstraints.gridy = 1; panel.add(new JLabel("Item2 :"), gridBagConstraints); gridBagConstraints.gridx = 1; gridBagConstraints.weightx = 1.0; gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints.gridy = 0; panel.add(textField1, gridBagConstraints); gridBagConstraints.gridy = 1; panel.add(textField2, gridBagConstraints); frame.add(panel); frame.pack(); frame.setVisible(true); } }
参考文献
http://ateraimemo.com/Swing/GroupLayout.htmlhttp://itpro.nikkeibp.co.jp/article/COLUMN/20070309/264379/?rt=nocnt
http://zawapro.com/?p=728
http://k-hiura.cocolog-nifty.com/blog/2011/07/swing-d38b.html