The applet methods are called by the AppletContext/Appletviewer. init is called on startup and only once. It is the place to put/initiate your construction code. start is called each time the applet is restored and is used for starting animation threads which are better left off when the applet is not active. This is considered well-mannered behavior. When running the applet from the command line (with optional main method) you will have to make other arrangements to call the start and stop methods.