BorderLayout Demo

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