I am trying to use a nested JPanel, which I can then reuse in different parts of my application, eg navigation bar at the top of the page. I am having trouble setting the orientation of the items, eg I want the button to be above the textfield.
If I create them individually and add them directly to the JPanel they come out one on top of the other as inteneded, as below:
    final JFrame frame = new JFrame("Nested Layout Example");
                    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      final JPanel gui = new JPanel(new BorderLayout(5,5));
                    gui.setBorder( new TitledBorder("BorderLayout(5,5)") );
                    JButton button = new JButton("Button");
                    JButton button1 = new JButton("Button1");
                    gui.add(button, BorderLayout.NORTH);
                    gui.add(button1, BorderLayout.SOUTH);
 frame.setContentPane(gui);
                frame.pack();
                frame.setLocationRelativeTo(null);
                try {
                    // 1.6+
                    frame.setLocationByPlatform(true);
                    frame.setMinimumSize(frame.getSize());
                } catch(Throwable ignoreAndContinue) {
                }
                frame.setVisible(true);
However, if I create a nested JPanel and put it inside another JPanel, so I can reuse it, they come out side by side, as below:
 final JFrame frame = new JFrame("Nested Layout Example");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                final JPanel gui = new JPanel(new BorderLayout(5,5));
                gui.setBorder( new TitledBorder("BorderLayout(5,5)") );
                JPanel container = new JPanel();
                JButton button = new JButton("Button");
                JButton button1 = new JButton("Button1");
                container.add(button, BorderLayout.NORTH);
                container.add(button1, BorderLayout.SOUTH);
                gui.add(container);
               frame.setContentPane(gui);
                frame.pack();
                frame.setLocationRelativeTo(null);
                try {
                    // 1.6+
                    frame.setLocationByPlatform(true);
                    frame.setMinimumSize(frame.getSize());
                } catch(Throwable ignoreAndContinue) {
                }
                frame.setVisible(true);
I have tried setting the componenetOrientation,
container.setComponentOrientation(ComponentOrientation.);
but there is no option for vertical
 
    