I am trying to align the RadioButtons in my program here. Can someonee help me? I am not exactly sure how to go about it. I have searched here and elsewhere and cannnot seem to find an applicable example. Here is, what I believe the relevant portion of my code. If more is needed, I will edit.
final class SplitPanel extends JFrame {
private FlowLayout flowLayout = new FlowLayout();
private GridLayout gridLayout = new GridLayout(4, 1);
private DiagLayout diagLayout = new DiagLayout();
private JRadioButton jrbFlowLayout = new JRadioButton("Horizontal");
private JRadioButton jrbGridLayout = new JRadioButton("Verticle");
private JRadioButton jrbDiagLayout = new JRadioButton("Diagonal");
private JButton jbt1 = new JButton("Button 1");
private JButton jbt2 = new JButton("Button 2");
private JButton jbt3 = new JButton("Button 3");
private JButton jbt4 = new JButton("Button 4");
private JSplitPane jSplitPane;
private JPanel jPanel1, jPanel2;
public SplitPanel() {
this.setTitle("Split Panel with Diagonalization");
this.setSize(600, 400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
createPanel1();
createPanel2();
jSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
jPanel1, jPanel2);
jSplitPane.setOneTouchExpandable(true);
jSplitPane.setContinuousLayout(true);
jSplitPane.setDividerLocation(150);
getContentPane().add(jSplitPane);
}
public void createPanel1() {
jPanel1 = new JPanel();
jPanel1.setBorder(new TitledBorder("Select a Layout Manger"));
jPanel1.add(jrbFlowLayout);
jPanel1.add(jrbGridLayout);
jPanel1.add(jrbDiagLayout);
ButtonGroup buttonGroup1 = new ButtonGroup();
buttonGroup1.add(jrbFlowLayout);
buttonGroup1.add(jrbGridLayout);
buttonGroup1.add(jrbDiagLayout);
}
public void createPanel2() {
jPanel2 = new JPanel();
jPanel2.setLayout(diagLayout);
jPanel2.add(jbt1);
jPanel2.add(jbt2);
jPanel2.add(jbt3);
jPanel2.add(jbt4);
jrbFlowLayout.addActionListener (new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
jPanel2.setLayout(flowLayout);
jPanel2.validate();
}
});
jrbGridLayout.addActionListener (new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
jPanel2.setLayout(gridLayout);
jPanel2.validate();
}
});
jrbDiagLayout.addActionListener (new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
jPanel2.setLayout(diagLayout);
jPanel2.validate();
}
});
}
Thank you for your help!
The default layout of a JPanel is a FlowLayout. http://docs.oracle.com/javase/tutorial/uiswing/layout/using.html
You might want to set the panels layout to a GridLayout or even a BoxLayout.
in
createPanel1(){
// create panel.
jPanel1.setLayout(new GridLayout(0,1));