Ok. I need to use the right layout manager so when the user resizes the container, all component sizes and positions are adjusted accordingly. For example, when the user uses the mouse to enlarge the container, the components should remain at the middle and in the same arrangement . This is what I have:
import java.awt.*;
import javax.swing.*;
public class NestingOne extends JFrame {
private JPanel panel1, panel2, panel3;
private Container container;
private JButton buttons[];
private JCheckBox snapgrid, showgrid;
private GridBagLayout gbl1,gbl2, gbl3;
private GridBagConstraints c;
private JTextField field1, field2;
private JLabel label1, label2;
public NestingOne(){
super("Nesting Panels");
container = getContentPane();
gbl1 = new GridBagLayout();
c = new GridBagConstraints();
c.anchor = GridBagConstraints.WEST;
c.fill = GridBagConstraints.NONE;
Insets i = new Insets(2,6,6,2);
c.insets = i;
c.gridx = 0;
c.gridy = 0;
c.weightx = 1.0;
c.weighty = 1.0;
c.gridwidth = 1;
c.gridheight = 1;
panel1 = new JPanel();
panel1.setLayout(gbl1);
snapgrid = new JCheckBox("Snap To Grid");
gbl1.setConstraints(snapgrid, c);
panel1.add(snapgrid);
c.gridy = 1;
showgrid = new JCheckBox("Show Grid");
gbl1.setConstraints(showgrid, c);
panel1.add(showgrid);
container.add(panel1, BorderLayout.WEST);
//panel 2 layout and add for x and y
gbl2 = new GridBagLayout();
panel2 = new JPanel();
panel2.setLayout(gbl2);
c.gridy = 0;
c.anchor = GridBagConstraints.EAST;
label1 = new JLabel("X: ");
label2 = new JLabel("Y: ");
gbl2.setConstraints(label1, c);
panel2.add(label1);
c.gridy = 1;
gbl2.setConstraints(label2, c);
panel2.add(label2);
c.gridy = 0;
c.gridx = 1;
c.anchor = GridBagConstraints.WEST;
field1 = new JTextField("8",5);
gbl2.setConstraints(field1, c);
panel2.add(field1);
c.gridy = 1;
field2 = new JTextField("8",5);
gbl2.setConstraints(field2, c);
panel2.add(field2);
container.add(panel2, BorderLayout.CENTER);
//Panel 3 layout and add for OK, Help, Cancel
c.anchor = GridBagConstraints.CENTER;
c.gridx = 0;
c.gridy = 0;
c.fill = GridBagConstraints.BOTH;
gbl3 = new GridBagLayout();
buttons = new JButton[3];
panel3 = new JPanel();
panel3.setLayout(gbl3);
buttons[0] = new JButton("OK");
gbl3.setConstraints(buttons[0], c);
panel3.add(buttons[0]);
buttons[1] = new JButton("Cancel");
c.gridy = 1;
gbl3.setConstraints(buttons[1], c);
panel3.add(buttons[1]);
buttons[2] = new JButton("Help");
c.gridy = 2;
gbl3.setConstraints(buttons[2], c);
panel3.add(buttons[2]);
container.add(panel3, BorderLayout.EAST);
setSize(425,150);
setVisible(true);
}
public static void main(String args[])
{
NestingOne application = new NestingOne();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Thanks so very much.
by: JavatmPosted on 2007-05-22 at 20:28:09ID: 19139191
Is this good enough?
id, c);
id, c);
, c);
, c);
, c);
, c);
s[0], c); s[1], c); s[2], c);
container, BorderLayout.CENTER);
eOperation (JFrame.EX IT_ON_CLOS E);
import java.awt.*;
import javax.swing.*;
public class NestingOne extends JFrame {
private JPanel panel1, panel2, panel3;
private JPanel container;
private JButton buttons[];
private JCheckBox snapgrid, showgrid;
private GridBagLayout gbl1,gbl2, gbl3;
private GridBagConstraints c;
private JTextField field1, field2;
private JLabel label1, label2;
public NestingOne(){
super("Nesting Panels");
container = new JPanel();
gbl1 = new GridBagLayout();
c = new GridBagConstraints();
c.anchor = GridBagConstraints.WEST;
c.fill = GridBagConstraints.NONE;
Insets i = new Insets(2,6,6,2);
c.insets = i;
c.gridx = 0;
c.gridy = 0;
c.weightx = 1.0;
c.weighty = 1.0;
c.gridwidth = 1;
c.gridheight = 1;
panel1 = new JPanel();
panel1.setLayout(gbl1);
snapgrid = new JCheckBox("Snap To Grid");
gbl1.setConstraints(snapgr
panel1.add(snapgrid);
c.gridy = 1;
showgrid = new JCheckBox("Show Grid");
gbl1.setConstraints(showgr
panel1.add(showgrid);
container.add(panel1, BorderLayout.WEST);
// panel 2 layout and add for x and y
gbl2 = new GridBagLayout();
panel2 = new JPanel();
panel2.setLayout(gbl2);
c.gridy = 0;
c.anchor = GridBagConstraints.EAST;
label1 = new JLabel("X: ");
label2 = new JLabel("Y: ");
gbl2.setConstraints(label1
panel2.add(label1);
c.gridy = 1;
gbl2.setConstraints(label2
panel2.add(label2);
c.gridy = 0;
c.gridx = 1;
c.anchor = GridBagConstraints.WEST;
field1 = new JTextField("8",5);
gbl2.setConstraints(field1
panel2.add(field1);
c.gridy = 1;
field2 = new JTextField("8",5);
gbl2.setConstraints(field2
panel2.add(field2);
container.add(panel2, BorderLayout.CENTER);
// Panel 3 layout and add for OK, Help, Cancel
c.anchor = GridBagConstraints.CENTER;
c.gridx = 0;
c.gridy = 0;
c.fill = GridBagConstraints.BOTH;
gbl3 = new GridBagLayout();
buttons = new JButton[3];
panel3 = new JPanel();
panel3.setLayout(gbl3);
buttons[0] = new JButton("OK");
gbl3.setConstraints(button
panel3.add(buttons[0]);
buttons[1] = new JButton("Cancel");
c.gridy = 1;
gbl3.setConstraints(button
panel3.add(buttons[1]);
buttons[2] = new JButton("Help");
c.gridy = 2;
gbl3.setConstraints(button
panel3.add(buttons[2]);
container.add(panel3, BorderLayout.EAST);
this.getContentPane().add(
setSize(425,150);
setVisible(true);
}
public static void main(String args[])
{
NestingOne application = new NestingOne();
application.setDefaultClos
}
}