Brought to you by EarthWeb
ITKnowledge Logo Login Graphic The Complete Resource for All Web Builders
The Complete Resource for All Web Builders
ITKnowledge
Find:
 
EXPERT SEARCH ----- nav

EarthWeb Direct

EarthWeb Direct

EarthWeb sites: other sites

Previous Table of Contents Next


A Complete but Gaudy Border Example

The previous sections provided code fragments demonstrating how to create the various types of borders contained in the JFC. This section applies those ideas in a complete example application. The application is a somewhat silly JFrame extension that displays many types of bordered components in its display area. Listing 5.4 is the complete listing for the BorderTest application. The results of running the application are shown in Figure 5.11. The ImageLoader class, used to load Icons for the borders, is presented in the next section. ExitAction, used in the frame’s menu, was presented in Chapter 4, “JFC Programming Techniques.”

Listing 5.4 BorderTest Application

package com.foley.test;

import java.awt.*;
import javax.swing.*;

import javax.swing.border.*;
import com.foley.borders.*;

import com.foley.utility.ExitAction;
import com.foley.utility.ImageLoader;

/**
 * An application that displays many borders
 * in its frame.
 *
 * @author Mike Foley
 **/
public class BorderTest extends JFrame {

    public static BorderTest frame;

    private Icon checker;
    private Icon abbey;
    private Icon stop;
    public static Image bullseye;
    public static Image bullseye2;

    /**
     * BorderTest, null constructor.
     **/
    public BorderTest() {
        this( null );
    } // BorderTest

    /**
     * BorderTest, constructor.
     *
     * @param title The title for the frame.
     **/
    public BorderTest( String title ) {
        super( title );
    } // BorderTest

    /**
     * frameInit, from JFrame
     *
     * Create the contrent for this frame.
     **/
    protected void frameInit() {

        //
        // Let our super create the content and associated panes.
        //
        super.frameInit();
        try {
            //
            // Load the images used.
            //
            checker = ImageLoader.loadIcon( “checker.gif” );
            abbey = ImageLoader.loadIcon( “abbey.gif” );
            stop = ImageLoader.loadIcon( “stop.gif” );
        } catch( InterruptedException ie ) {
            System.err.println( “Could not load images” );
            System.exit( -1 );
        }

        JMenuBar menubar = createMenu();
        setJMenuBar( menubar );

        Container content = getContentPane();

        JPanel borders = createBorderPanel();
        JPanel animatedPanel = createAnimatedBorderPanel();

        //
        // Add the border panels to the content.
        //
        borders.setBorder( BorderFactory.createTitledBorder(
 BorderFactory.createBevelBorder( BevelBorder.LOWERED ),
                            “Simple Borders” ) );
        content.add( borders, BorderLayout.EAST );

        animatedPanel.setBorder( BorderFactory.createTitledBorder(
                                BorderFactory.createLoweredBevelBorder(),
                                “Animated Borders” ) );
        content.add( animatedPanel, BorderLayout.WEST );

    } // frameInit

    /**
     * Create the menu for the frame.
     *
     * @return The menu for the frame.
     **/
    protected JMenuBar createMenu() {

        JMenuBar menubar = new JMenuBar();

        JMenu file = new JMenu( “File” );
        file.add( new ExitAction() );
        menubar.add( file );
        return( menubar );

    } // createMenu

    /**
     * Create a panel containing many ‘simple’ borders.
     *
     * @return A panel containing many borders around labels.
     **/
    protected JPanel createBorderPanel() {

        JPanel simpleBorders = new JPanel();
        simpleBorders.setLayout( new BoxLayout(
 simpleBorders, BoxLayout.Y_AXIS ) );

        int strutHeight = 10;
        simpleBorders.add( Box.createVerticalStrut( strutHeight ) );

        JLabel lineBorder = new JLabel( “Line Border” );
        Border border = BorderFactory.createLineBorder( Color.blue, 5 );
        lineBorder.setBorder( border );
        simpleBorders.add( lineBorder );

        simpleBorders.add( Box.createVerticalStrut( strutHeight ) );

        JLabel lowBevelBorder = new JLabel( “Lowered Bevel Border” );
        border = BorderFactory.createBevelBorder( BevelBorder.LOWERED );
        lowBevelBorder.setBorder( border );
        simpleBorders.add( lowBevelBorder );

        simpleBorders.add( Box.createVerticalStrut( strutHeight ) );

        JLabel raisedBevelBorder = new JLabel( “Raised Bevel Border” );
        border = BorderFactory.createBevelBorder( BevelBorder.RAISED );
        raisedBevelBorder.setBorder( border );
        simpleBorders.add( raisedBevelBorder );

        simpleBorders.add( Box.createVerticalStrut( strutHeight ) );

        JLabel softBevelBorder = new JLabel( “Soft Bevel Border” );
        border = new SoftBevelBorder( BevelBorder.RAISED );
        softBevelBorder.setBorder( border );
        simpleBorders.add( softBevelBorder );

        simpleBorders.add( Box.createVerticalStrut( strutHeight ) );

        softBevelBorder = new JLabel( “Soft Bevel Border” );
        border = new SoftBevelBorder( BevelBorder.LOWERED );
        softBevelBorder.setBorder( border );

        simpleBorders.add( softBevelBorder );

        simpleBorders.add( Box.createVerticalStrut( strutHeight ) );

        JLabel ourcolorBevelBorder = new JLabel( “Color Bevel Border” );
        border = BorderFactory.createBevelBorder( BevelBorder.LOWERED,
                                Color.blue, Color.red,
                                Color.yellow, Color.gray );
        ourcolorBevelBorder.setBorder( border );
        simpleBorders.add( ourcolorBevelBorder );

        simpleBorders.add( Box.createVerticalStrut( strutHeight ) );

        JLabel etchedBorder = new JLabel( “Etched Border” );
        border = BorderFactory.createEtchedBorder();
        etchedBorder.setBorder( border );
        simpleBorders.add( etchedBorder );

        simpleBorders.add( Box.createVerticalStrut( strutHeight ) );

        JLabel emptyBorder = new JLabel( “Empty Border” );
        border = BorderFactory.createEmptyBorder();
        emptyBorder.setBorder( border );
        simpleBorders.add( emptyBorder );

        simpleBorders.add( Box.createVerticalStrut( strutHeight ) );

        JLabel matteBorder = new JLabel( “Matte Border” );
        border = BorderFactory.createMatteBorder(5, 5, 5, 5, Color.blue);
        matteBorder.setBorder( border );
        simpleBorders.add( matteBorder );

        simpleBorders.add( Box.createVerticalStrut( strutHeight ) );

        JLabel checkerBorder = new JLabel( “Matte Border” );
        border = BorderFactory.createMatteBorder( 4, 4, 4, 4, checker );
        checkerBorder.setBorder( border );
        simpleBorders.add( checkerBorder );

        simpleBorders.add( Box.createVerticalStrut( strutHeight ) );

        simpleBorders.add( new JSeparator() );

        JLabel compondBorder = new JLabel( “Compound Matte Border” );
        border = BorderFactory.createCompoundBorder(
            BorderFactory.createMatteBorder( 4, 4, 4, 4, checker ),
            BorderFactory.createEmptyBorder( 4, 4, 4, 4 ) );
        compondBorder.setBorder( border );
        simpleBorders.add( compondBorder );

        JLabel abbeyBorder = new JLabel( “Abbey Road Border” );
        border = BorderFactory.createCompoundBorder(
            BorderFactory.createMatteBorder( 4, 6, 4, 6, abbey ),
            BorderFactory.createEmptyBorder( 4, 4, 5, 4 ) );
        abbeyBorder.setBorder( border );
        simpleBorders.add( abbeyBorder );

        simpleBorders.add( Box.createVerticalStrut( strutHeight ) );

        compondBorder = new JLabel( “Compound Bevel Border” );
        border = BorderFactory.createCompoundBorder(
            BorderFactory.createBevelBorder( BevelBorder.LOWERED ),
            BorderFactory.createMatteBorder( 4, 4, 4, 4, checker ) );
        border = BorderFactory.createCompoundBorder(
            border,
            BorderFactory.createBevelBorder( BevelBorder.RAISED ) );
        border = BorderFactory.createCompoundBorder(
            border,
            BorderFactory.createEmptyBorder( 2, 2, 2, 2 ) );

        compondBorder.setBorder( border );
        simpleBorders.add( compondBorder );

        simpleBorders.add( Box.createVerticalStrut( strutHeight ) );

          return( simpleBorders );
    }

    /**
     * Create a panel containing many animated borders.
     *
     * @return A panel containing many animated borders.
     **/
    protected JPanel createAnimatedBorderPanel() {

        JPanel animatedPanel = new JPanel();
        animatedPanel.add( new JLabel( “Animated” ) );
        animatedPanel.setLayout(
                 new BoxLayout( animatedPanel, BoxLayout.Y_AXIS ) );
        JLabel animated = new JLabel( “Color Animator” );
        animated.setBorder(
                 new ColorAnimatedBorder( animated, 6, 6, 6, 6 ) );
        animatedPanel.add( animated );
        animatedPanel.add( new JSeparator() );
        animated = new JLabel( “Chaser Animator” );
        animated.setBorder(
                 new ChaserLightsBorder( animated, 6, 6, 6, 6 ) );
        animatedPanel.add( animated );

        return( animatedPanel );
    }

    /**
     * Application entry point.
     * Create the frame, and display it.
     *
     * @param args Command line parameter. Not used.
     **/
    public static void main( String[] args ) {

        JFrame frame = new BorderTest( “Border Test” );
        frame.pack();
        frame.setVisible( true );
    } // main

} // BorderTest


Figure 5.11  The complete BorderTest application.


Previous Table of Contents Next
HomeAbout UsSearchSubscribeAdvertising InfoContact UsFAQs
Use of this site is subject to certain Terms & Conditions.
Copyright (c) 1996-1999 EarthWeb Inc. All rights reserved. Reproduction in whole or in part in any form or medium without express written permission of EarthWeb is prohibited. Read EarthWeb's privacy statement.