Also available as Visuals.java

/**
 * A Simple stand-alone GUI program based on Swing.
 * The program changes some colors, borders and fonts
 * as an idea of how to customize some swing components
 * 
 * This example uses a class that extends JFrame
 * instead of creating a JFrame object!
 * (inheritance vs. composition)
 *
 * @author Dave Hollinger
 * @version 1.0
 */

import javax.swing.*;
import java.awt.*;       // needed for Container


class Visuals extends JFrame {

  public static void main(String [] args) {
        Visuals v = new Visuals();
  }

  // constructor (called by main)
  Visuals() {
        Container c = getContentPane();


        // add a bunch of buttons

        c.add( makeButton( "First", "Arial", 
                                           Color.BLACK,
                                           new Color(220,220,220)));

        c.add( makeButton( "Second", "Courier", 
                                           Color.WHITE,
                                           Color.BLUE));

        c.add( makeButton( "Third", "TimesRoman", 
                                           Color.RED,
                                           Color.BLACK));


        // add some labels
        c.add( makeLabel("Label 1","fixed",
                                         Color.BLACK,Color.GRAY));

        c.add( makeLabel("Label 2","Helvetica",
                                         Color.GRAY,Color.WHITE));



        // establish the layout manager
        c.setLayout( new FlowLayout(FlowLayout.CENTER,5,5));

        // set the size
        setSize(200,400);

        // set the title
        setTitle("Demo Program");

        // establish what happens when the window is closed
        // (without this the program would keep running!)
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // make the frame visible
        setVisible(true);
  }


  JButton makeButton(String label, String fontname, 
                                         Color foreground, Color background) {

        // create the button object
        JButton j = new JButton(label);

        // change the font
        j.setFont(new Font(fontname,Font.BOLD,20));

        // change the background
        j.setBackground(background);

        // change the foreground color
        j.setForeground(foreground);

        return(j);
  }



  JLabel makeLabel(String label, String fontname, 
                                         Color foreground, Color background) {

        // create the label object
        JLabel l = new JLabel(label);

        // change the font
        l.setFont(new Font(fontname,Font.BOLD,30));

        // change the background
        l.setBackground(background);

        // change the foreground color
        l.setForeground(foreground);

        // change the border
        l.setBorder(BorderFactory.createRaisedBevelBorder());

        return(l);
  }



}