After resizing:
BorderLayoutDemo.java
// Fig. 14.42: BorderLayoutDemo.java // Testing BorderLayoutFrame. import javax.swing.JFrame; import java.awt.BorderLayout; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.JButton; class BorderLayoutFrame extends JFrame implements ActionListener { private JButton[] buttons; // array of buttons to hide portions private static final String[] names = { "Hide North", "Hide South", "Hide East", "Hide West", "Hide Center" }; private BorderLayout layout; // borderlayout object // set up GUI and event handling public BorderLayoutFrame() { super( "BorderLayout Demo" ); layout = new BorderLayout( 5, 5 ); // 5 pixel gaps setLayout( layout ); // set frame layout buttons = new JButton[ names.length ]; // set size of array // create JButtons and register listeners for them for ( int count = 0; count < names.length; count++ ) { buttons[ count ] = new JButton( names[ count ] ); buttons[ count ].addActionListener( this ); } // end for add( buttons[ 0 ], BorderLayout.NORTH ); // add button to north add( buttons[ 1 ], BorderLayout.SOUTH ); // add button to south add( buttons[ 2 ], BorderLayout.EAST ); // add button to east add( buttons[ 3 ], BorderLayout.WEST ); // add button to west add( buttons[ 4 ], BorderLayout.CENTER ); // add button to center } // end BorderLayoutFrame constructor // handle button events public void actionPerformed( ActionEvent event ) { // check event source and lay out content pane correspondingly for ( JButton button : buttons ) { if ( event.getSource() == button ) button.setVisible( false ); // hide button clicked else button.setVisible( true ); // show other buttons } // end for layout.layoutContainer( getContentPane() ); // lay out content pane } // end method actionPerformed } // end class BorderLayoutFrame public class BorderLayoutDemo { public static void main( String[] args ) { BorderLayoutFrame borderLayoutFrame = new BorderLayoutFrame(); borderLayoutFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); borderLayoutFrame.setSize( 300, 200 ); // set frame size borderLayoutFrame.setVisible( true ); // display frame } // end main } // end class BorderLayoutDemo
Maintained by John Loomis, updated Sat Jun 20 12:37:14 2015