Trail: Deployment
Lesson: Applets
This lesson talks about the basics of applets, advantages of applets over applications, how to load applets in a web page, how to convert applications to applets and how applets work. You should thoroughly understand this lesson before going further in this trail.

An applet is a special kind of Java program that a browser enabled with Java technology can download from the internet and run. An applet is typically embedded inside a web-page and runs in the context of the browser. An applet must be a subclass of the java.applet.Applet class, which provides the standard interface between the applet and the browser environment.

Swing provides a special subclass of Applet, called javax.swing.JApplet, which should be used for all applets that use Swing components to construct their GUIs.

By calling certain methods, a browser manages an applet life cycle, if an applet is loaded in a web page.

Life Cycle of an Applet: Basically, there are four methods in the Applet class on which any applet is built.

  • init: This method is intended for whatever initialization is needed for your applet. It is called after the param attributes of the applet tag.
  • start: This method is automatically called after init method. It is also called whenever user returns to the page containing the applet after visiting other pages.
  • stop: This method is automatically called whenever the user moves away from the page containing applets. You can use this method to stop an animation.
  • destroy: This method is only called when the browser shuts down normally.

    Thus, the applet can be initialized once and only once, started and stopped one or more times in its life, and destroyed once and only once.

    For more information on Life Cylce of an Applet, please refer to The Life Cycle of an Applet section.

    When to write Applets vs. Applications

    In the early days of Java, one of the critical advantages that Java applets had over Java applications was that applets could be easily deployed over the web while Java applications required a more cumbersome installation process. Additionally, since applets are downloaded from the internet, by default they have to run in a restricted security environment, called the "sandbox", to ensure they don't perform any destructive operations on the user's computer, such as reading/writing to the filesystem.

    However, the introduction of Java Web Starthas made it possible for Java applications to also be easily deployed over the web, as well as run in a secure environment. This means that the predominant difference between a Java applet and a Java application is that an applet runs in the context of a web browser, being typically embedded within an html page, while a Java application runs standalone, outside the browser. Thus, applets are particularly well suited for providing functions in a web page which require more interactivity or animation than HTML can provide, such as a graphical game, complex editing, or interactive data visualization. The end user is able to access the functionality without leaving the browser.

    Loading Applets in a Web Page

    In order to load an applet in a web page, you must specify the applet class with appropriate applet tags. A simple example is below:
        <applet code=AppletWorld.class width="200" height="200">

    For development and testing purposes, you can run your applet using the lightweight appletviewer application that comes with the JDK. For example, if AppletWorld.html is the html file name, then you run the command as

    	appletviewer AppletWorld.html

    Once you know your applet runs within the appletviewer, it is important to test your applet running in a web browser by loading the applet's web page into the browser window. The browser can retrieve the class files either from the internet or from the local working directory used during development. If you make changes to your applet's code while it is loaded in the browser, then you must recompile the applet and press the "Shift + Reload" button in the browser to load the new version.

    Getting Started with Applets

    This section tells you how applets work. When you want a program to run directly in a browser window, you want an applet.

    Taking Advantage of the Applet API

    This section describes how to use the API to which only applets have access. It covers sound, applet parameters, the <APPLET> tag, interapplet communication, and making requests to the browser.

    Practical Considerations When Writing Applets

    This section discusses topics that are covered elsewhere in this tutorial but that are affected by the applet environment. For example, it mentions some factors you should consider when writing the graphical user interface (GUI) for your applet. It also talks about security restrictions on applets and how a server-side application can help you get around those restrictions.

    Finishing an Applet

    This section describes the characteristics of a high-quality applet. It includes Before You Ship That Applet, a checklist of some annoying behaviors you should avoid in your applet.

    Deploying Applets

    This section explains to HTML authors how and when to use the applet, object, and embed tags to add Java applets to Web pages.

    Common Problems (and Their Solutions)

    This section explains the solutions to some problems you might run into while writing your applet.

    Questions and Exercises: Applets

    Test what you've learned about applets.

    Additional References

    This lesson is intended to get you started with applets and Java Plug-in and does not include all available documentation. For more information about applets, see the following:
  • Previous page: Previous Lesson
    Next page: Getting Started with Applets