package usr.erichschroeter.jpreferences.pages;
import javax.swing.ButtonGroup;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import usr.erichschroeter.jpreferences.page.CustomPage;
/**
* An example preference page to display some basic fields for entering personal
* information. This is intended to show users how to create a custom preference
* page that fits their simple needs.
*
* @author Erich Schroeter
*/
public class PersonalInformationPage extends CustomPage<JPanel> {
public PersonalInformationPage(String title, String description) {
super(title, description);
}
@Override
protected void initializePage(JPanel page) {
GroupLayout layout = new GroupLayout(page);
page.setLayout(layout);
JLabel nameLabel = new JLabel("Name:");
JTextField nameField = new JTextField(10);
JLabel genderLabel = new JLabel("Gender:");
JRadioButton maleButton = new JRadioButton("male");
JRadioButton femaleButton = new JRadioButton("female");
JRadioButton noneButton = new JRadioButton("none");
ButtonGroup genderGroup = new ButtonGroup();
genderGroup.add(maleButton);
genderGroup.add(femaleButton);
genderGroup.add(noneButton);
layout.setAutoCreateContainerGaps(true);
layout.setAutoCreateGaps(true);
layout.setHorizontalGroup(layout
.createSequentialGroup()
.addGroup(
layout.createParallelGroup(Alignment.LEADING)
.addComponent(nameLabel)
.addComponent(genderLabel))
.addGroup(
layout.createParallelGroup(Alignment.LEADING)
.addGroup(
layout.createSequentialGroup()
.addComponent(nameField))
.addGroup(
layout.createSequentialGroup()
.addComponent(maleButton)
.addComponent(femaleButton)
.addComponent(noneButton))));
layout.setVerticalGroup(layout
.createSequentialGroup()
.addGroup(
layout.createParallelGroup(Alignment.BASELINE)
.addComponent(nameLabel)
.addComponent(nameField))
.addGroup(
layout.createParallelGroup(Alignment.LEADING)
.addComponent(genderLabel)
.addComponent(maleButton)
.addComponent(femaleButton)
.addComponent(noneButton)));
}
}