// This code example is from the following source:
//
// Book Title:  Programming with Objects, A Comparative Presentation
//              of Object-Oriented Programming with C++ and Java
//
// Chapter:     Chapter 17  OO For Graphical User INterfaces, A Tour Of Three Toolkits
//
// Section:     Section 17.9  Layout Management In AWT/Swing
//
// The links to the rest of the code in this book are at
//     
//      http://programming-with-objects.com/pwocode.html
//
// For further information regarding the book, please visit
//
//      http://programming-with-objects.com
//



//BorderLayoutTest.java
//additional files needed: snlowflake.gif, zwthr14.gif, 
//thunderstormanim.gif, sunanim.gif

import java.awt.*;            // for Container, BorderLayout
import java.awt.event.*;      // for WindowAdapter
import javax.swing.*;
import javax.swing.border.*;  // Border, BorderFactory

public class BorderLayoutTest {
    public static void main( String[] args ) {
        JFrame f = new JFrame( "BorderLayoutTest" );

        f.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

        Container contentPane = f.getContentPane();

        //the following is unnecessary since BorderLayout is default:
        // contentPane.setLayout( new BorderLayout() ); 

        //NORTH:
        ImageIcon northIcon = new ImageIcon( "image/snowflake.gif" );
        JLabel northLabel = new JLabel( "Frigid in the North", 
                                         northIcon, 
                                         JLabel.CENTER ); 
        northLabel.setVerticalTextPosition( JLabel.BOTTOM );
        northLabel.setHorizontalTextPosition( JLabel.CENTER );
        contentPane.add( northLabel , BorderLayout.NORTH );

        //SOUTH:
        ImageIcon southIcon = new ImageIcon( "image/zwthr14.gif" );
        JLabel southLabel = new JLabel( "Balmy in the South", 
                                         southIcon, 
                                         JLabel.CENTER ); 
        southLabel.setVerticalTextPosition( JLabel.BOTTOM );
        southLabel.setHorizontalTextPosition( JLabel.CENTER );
        contentPane.add( southLabel, BorderLayout.SOUTH );

        //EAST:
        ImageIcon eastIcon = 
                     new ImageIcon( "image/thunderstormanim.gif" );
        JLabel eastLabel = new JLabel( "Stormy In the East", 
                                       eastIcon, 
                                       JLabel.CENTER ); 
        eastLabel.setVerticalTextPosition( JLabel.BOTTOM );
        eastLabel.setHorizontalTextPosition( JLabel.CENTER );
        Border borderEastLabel = 
                      BorderFactory.createLineBorder( Color.blue );
        eastLabel.setBorder( borderEastLabel );
        contentPane.add( eastLabel, BorderLayout.EAST );

        //WEST:
        ImageIcon iconWest = new ImageIcon( "image/sunanim.gif" );
        JLabel westLabel = new JLabel( "Sunny in the West", 
                                       iconWest, 
                                       JLabel.CENTER ); 
        westLabel.setVerticalTextPosition( JLabel.BOTTOM );
        westLabel.setHorizontalTextPosition( JLabel.CENTER );
        Border borderWestLabel = 
                    BorderFactory.createLineBorder( Color.black );
        westLabel.setBorder( borderWestLabel );
        contentPane.add( westLabel, BorderLayout.WEST );

        //CENTER:
        JLabel centerLabel = 
               new JLabel( "The Weather Compass", JLabel.CENTER );
        Border borderCenterLabel = 
               BorderFactory.createLineBorder( Color.red );
        centerLabel.setBorder( borderCenterLabel );
        contentPane.add( centerLabel , BorderLayout.CENTER );

        f.pack();
        f.setLocation( 200, 300 );
        f.setVisible( true );
    }
}