Try
twoPanel.setLayout(new BoxLayout(twoPanel, BoxLayout.PAGE_AXIS));
edit: Hmm, scratch that, it doesn't preserve the horizontal ordering that you wanted for the second panel.
Ezzaral
Posting Genius
15,986 posts since May 2007
Reputation Points: 3,250
Solved Threads: 847
Edit: oops cross-posted, I guess you found the same thing :)
Try this
public void init() {
one = new JButton("one");
two = new JButton("two");
three = new JButton("three");
setLayout(new BoxLayout(getContentPane(), BoxLayout.PAGE_AXIS));
add(new JLabel("This is the contentPane."));
JPanel twoPanel = new JPanel();
twoPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
twoPanel.setLayout(new BoxLayout(twoPanel, BoxLayout.LINE_AXIS));
twoPanel.add(new JLabel("Second Panel"));
twoPanel.add(new JTextField("Text Field"));
add(twoPanel); // comment this line out
one.setAlignmentX(Component.LEFT_ALIGNMENT);
two.setAlignmentX(Component.LEFT_ALIGNMENT);
three.setAlignmentX(Component.LEFT_ALIGNMENT);
add(one);
add(two);
add(three);
}
Ezzaral
Posting Genius
15,986 posts since May 2007
Reputation Points: 3,250
Solved Threads: 847