Download the JDK
Search the Tutorials
Hide the TOC
Applets
Getting Started with Applets
Importing Classes and Packages for Applets
Defining an Applet Subclass
The Life Cycle of an Applet
Methods for Milestones
Methods for Drawing and Event Handling
Methods for Adding UI Components
What Applets Can and Can't Do
Taking Advantage of the Applet API
Finding and Loading Data Files
Displaying Short Status Strings
Displaying Documents in the Browser
Sending Messages to Other Applets
Playing Sounds
Defining and Using Applet Parameters
Deciding Which Parameters to Support
Writing the Code to Support Parameters
Giving Information about Parameters
Using the APPLET Tag
Practical Considerations When Writing Applets
Security Restrictions
Creating a User Interface
Creating a GUI
Displaying Diagnostics to the Standard Output and Error Streams
Getting System Properties
Threads in Applets
Threads in Applets: Examples
Working with a Server-Side Application
A Simple Network Client Applet
Using a Server to Work Around Security Restrictions
Finishing an Applet
Before You Ship that Applet
The Perfectly Finished Applet
Deploying Applets
General Deployment Considerations
Using the applet Tag
Using the object Tag
Using the embed Tag
Deploying Applets in a Mixed-Browser Environment
Solving Common Applet Problems
Questions and Exercises
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">
>   >         </applet>

>   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:
>   > - Java Plug-in Developer Guide

Previous page: Previous Lesson
Next page: Getting Started with Applets