Core JAVAWrite Once, Run Anywhere |
An applet is a Java program that runs in a Web browser. An applet can be a fully functional Java application because it has the entire Java API at its disposal.
There are some important differences between an applet and a standalone Java application, including the following:
Life Cycle of an Applet:
Four methods in the Applet class give you the framework on which you build any serious applet:
A "Hello, World" Applet:
The following is a simple applet named HelloWorldApplet.java:
These import statements bring the classes into the scope of our applet class:
Without those import statements, the Java compiler would not recognize the classes Applet and Graphics, which the applet class refers to.
The Applet CLASS:
Every applet is an extension of the java.applet.Applet class. The base Applet class provides methods that a derived Applet class may call to obtain information and services from the browser context.
These include methods that do the following:
Additionally, the Applet class provides an interface by which the viewer or browser obtains information about the applet and controls the applet's execution. The viewer may:
The Applet class provides default implementations of each of these methods. Those implementations may be overridden as necessary.
The "Hello, World" applet is complete as it stands. The only method overridden is the paint method.
Invoking an Applet:
An applet may be invoked by embedding directives in an HTML file and viewing the file through an applet viewer or Java-enabled browser.
The "applet" tag is the basis for embedding an applet in an HTML file. Below is an example that invokes the "Hello, World" applet:
The code attribute of the "applet" tag is required. It specifies the Applet class to run. Width and height are also required to specify the initial size of the panel in which an applet runs. The applet directive must be closed with a tag.
If an applet takes parameters, values may be passed for the parameters by adding tags between . The browser ignores text and other tags between the applet tags.
Non-Java-enabled browsers do not process <"applet"> and <"/applet">. Therefore, anything that appears between the tags, not related to the applet, is visible in non-Java-enabled browsers.
The viewer or browser looks for the compiled Java code at the location of the document. To specify otherwise, use the codebase attribute of the "applet" tag as shown:
If an applet resides in a package other than the default, the holding package must be specified in the code attribute using the period character (.) to separate package/class components. For example:
Getting Applet Parameters:
The following example demonstrates how to make an applet respond to setup parameters specified in the document. This applet displays a checkerboard pattern of black and a second color.
The second color and the size of each square may be specified as parameters to the applet within the document.
CheckerApplet gets its parameters in the init() method. It may also get its parameters in the paint() method. However, getting the values and saving the settings once at the start of the applet, instead of at every refresh, is convenient and efficient.
The applet viewer or browser calls the init() method of each applet it runs. The viewer calls init() once, immediately after loading the applet. (Applet.init() is implemented to do nothing.) Override the default implementation to insert custom initialization code.
The Applet.getParameter() method fetches a parameter given the parameter's name (the value of a parameter is always a string). If the value is numeric or other non-character data, the string must be parsed.
The following is a skeleton of CheckerApplet.java:
Here are CheckerApplet's init() and private parseSquareSize() methods:
The applet calls parseSquareSize() to parse the squareSize parameter. parseSquareSize() calls the library method Integer.parseInt(), which parses a string and returns an integer. Integer.parseInt() throws an exception whenever its argument is invalid.
Therefore, parseSquareSize() catches exceptions, rather than allowing the applet to fail on bad input.
The applet calls parseColor() to parse the color parameter into a Color value. parseColor() does a series of string comparisons to match the parameter value to the name of a predefined color. You need to implement these methods to make this applet works.
Displaying Images:
An applet can display images of the format GIF, JPEG, BMP, and others. To display an image within the applet, you use the drawImage() method found in the java.awt.Graphics class.
Following is the example showing all the steps to show images:
Now let us call this applet as follows:
Playing Audio:
An applet can play an audio file represented by the AudioClip interface in the java.applet package. The AudioClip interface has three methods, including:
To obtain an AudioClip object, you must invoke the getAudioClip() method of the Applet class. The getAudioClip() method returns immediately, whether or not the URL resolves to an actual audio file. The audio file is not downloaded until an attempt is made to play the audio clip.
Following is the example showing all the steps to play an audio:
Now let us call this applet as follows:
You can use your test.wav at your PC to test the above example.