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

/**
 * A simple program that shows six different types of border.  The
 * borders are used on labels which are contained in a panel that
 * itself uses an EmptyBorder.
 */
public class BorderDemo extends JPanel {

    /**
     * A main routine allows this class to be run as an application.
     */
    public static void main(String[] args) {
        JFrame window = new JFrame("Slider Demo");
        BorderDemo content = new BorderDemo();
        window.setContentPane(content);
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.setLocation(120,70);
        window.pack();
        window.setVisible(true);
    }

    //---------------------------------------------------------------------


    public BorderDemo() {
        setBackground(Color.LIGHT_GRAY);
        setLayout( new GridLayout(0,1,10,10) );
        setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
        make(BorderFactory.createLineBorder(Color.RED,2),
                " BorderFactory.createLineBorder(Color.RED,2) ");
        make(BorderFactory.createMatteBorder(2,2,5,5,Color.RED),
                " BorderFactory.createMatteBorder(2,2,5,5,Color.RED) ");
        make(BorderFactory.createEtchedBorder(),
                " BorderFactory.createEtchedBorder() ");
        make(BorderFactory.createRaisedBevelBorder(),
                " BorderFactory.createRaisedBevelBorder() ");
        make(BorderFactory.createLoweredBevelBorder(),
                " BorderFactory.createLoweredBevelBorder() ");
        make(BorderFactory.createTitledBorder("Title Goes Here"),
                " BorderFactory.createTitledBorder(\"Title Goes Here\") ");
    }

    /**
     * Make a label showing the string and with the specified border.
     * The label will be opaque and will have a light gray background.
     * The label is added to the content pane.
     */
    void make(Border border, String command) {
        JLabel label = new JLabel(command, JLabel.CENTER);
        label.setBorder(border);
        add(label);
    }


}
