# Java: Example - CircleMain.java

Here is the program which uses the CirclePanel class (see Example - CirclePanel.java).

    /**
     * Program:  CircleMain.java - Uses the CirclePanel component
     * @version 2002-00-00
     * @author Mickey Mouse
     */

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

    /////////////////////////////////////////////////////////////////// CircleMain
    class CircleMain extends JFrame{
        //================================================ instance variables
        CirclePanel drawing = new CirclePanel();               // Note 1

        //======================================================= constructor
        CircleMain() {
            //--- Get content pane, set layout, add components
            Container content = this.getContentPane();
            content.setLayout(new BorderLayout());

            content.add(drawing, BorderLayout.CENTER);        // Note 2

            this.setTitle("Circles");
            this.pack();       // finalize the layout
        }//end constructor

        //============================================================== main
        public static void main(String[] args) {
            JFrame myWindow = new CircleMain();
            myWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            myWindow.setVisible(true);
        }//end main
    }//endclass CircleMain

## Notes

1. The drawing is declared as an instance variable, which can be referenced in all methods. There is no need for that here since no one every references after it has been built. However, it is very common to interact with a drawing during execution of a program, and an instance variable is useful for later interaction.
2. Because the variable doesn't need to be an instance variable or indeed any variable, this could be rewritten as

       content.add(new CirclePanel(), BorderLayout.CENTER);