Java Applets was once a very popular feature of web applications. Java Applets were small programs written in Java that ran inside a web browser. Learning about Applet helps us understand how Java has evolved and how it handles graphics.
Note: java.applet package has been deprecated in Java 9 and later versions, as applets are no longer widely used on the web.
Java AppletsA Java Applet is a Java program that runs inside a web browser. An Applet is embedded in an HTML file using <applet> or <objects> tags. Applets are used to make the website more dynamic and entertaining. Applets are executed in a sandbox for security, restricting access to local system resources.
Key Points:
The below diagram demonstrates the life cycle of Java Applet:
It is important to understand the order in which the various methods shown in the above image are called.
Let’s look more closely at these methods.
1. init( ): The init( ) method is the first method to be called. This is where you should initialize variables. This method is called only once during the run time of your applet.
2. start( ): The start( ) method is called after init( ). It is also called to restart an applet after it has been stopped.
Note: init( ) is called once i.e. when the first time an applet is loaded whereas start( ) is called each time an applet’s HTML document is displayed onscreen. So, if a user leaves a web page and comes back, the applet resumes execution at start( )
3. paint( ): The paint( ) method is called each time an AWT-based applet’s output must be redrawn. This situation can occur for several reasons. For example, the window in which the applet is running may be overwritten by another window and then uncovered. Or the applet window may be minimized and then restored.
This method is crucial for updating or redrawing the visual content of the applet.
Example:
public void paint(Graphics g)
{
// Drawing a string on the applet window
// g is an object reference of class Graphic.
g.drawString("Hello, Applet!", 50, 50);
}
Now the below Question Arises:
In the prototype of paint() method, we have created an object reference without creating its object. But how is it possible to create object reference without creating its object?
Ans. Whenever we pass object reference in arguments then the object will be provided by its caller itself. In this case the caller of paint() method is browser, so it will provide an object. The same thing happens when we create a very basic program in normal Java programs. For Example:
public static void main(String []args) {
}
Here we have created an object reference without creating its object but it still runs because it’s caller, i.e. JVM will provide it with an object.
4. stop( ): The stop( ) method is called when a web browser leaves the HTML document containing the applet, when it goes to another page.
For example: When stop( ) is called, the applet is probably running. You should use stop( ) to suspend threads that don’t need to run when the applet is not visible. You can restart them when start( ) is called if the user returns to the page.
5. destroy( ): The destroy( ) method is called when the environment determines that your applet needs to be removed completely from memory. At this point, you should free up any resources the applet may be using. The stop( ) method is always called before destroy( ).
Key Packages for Java AppletsLet’s begin with the HelloWorld applet :
Java
import java.applet.Applet;
import java.awt.Graphics;
// HelloWorld class extends Applet
public class HelloWorld extends Applet {
// Overriding paint() method
@Override public void paint(Graphics g)
{
g.drawString("Hello World", 20, 20);
}
}
Explanation:
void drawString(String message, int x, int y)
Here, message is the string to be output beginning at x,y. In a Java window, the upper-left corner is location 0,0. The call to drawString( ) in the applet causes the message "Hello World" to be displayed beginning at location 20,20.
Notice that the applet does not have a main( ) method. Unlike Java programs, applets do not begin execution at main( ). In fact, most applets don’t even have a main( ) method. Instead, an applet begins execution when the name of its class is passed to an applet viewer or to a network browser.
Running the HelloWorld AppletAfter you enter the source code for HelloWorld.java, compile in the same way that you have been compiling java programs (using javac command). However, running HelloWorld with the java command will generate an error because it is not an application.
java HelloWorld
Error: Main method not found in class HelloWorld, please define the main method as:
public static void main(String[] args)
There are two standard ways in which you can run an applet:
Each of these methods is described next.
1. Using java enabled web browser<applet code="HelloWorld" width=200 height=60>
</applet>
The width and height statements specify the dimensions of the display area used by the applet. The APPLET tag contains several other options. After you create this html file, you can use it to execute the applet.
2. Using appletviewerNote: Chrome and Firefox no longer supports NPAPI (technology required for Java applets).
3. appletviewer with Java Source Fileappletviewer RunHelloWorld.html
If you include a comment at the head of your Java source code file that contains the APPLET tag then your code is documented with a prototype of the necessary HTML statements, and you can run your compiled applet merely by starting the applet viewer with your Java source code file. If you use this method, the HelloWorld source file looks like this:
Java
// A Hello World Applet
// Save file as HelloWorld.java
import java.applet.Applet;
import java.awt.Graphics;
/*
<applet code="HelloWorld" width=200 height=60>
</applet>
*/
// HelloWorld class extends Applet
public class HelloWorld extends Applet
{
// Overriding paint() method
@Override
public void paint(Graphics g)
{
g.drawString("Hello World", 20, 20);
}
}
With this approach, first compile HelloWorld.java file and then simply run the below command to run applet :
appletviewer HelloWorld
To prove above mentioned point,i.e paint is called again and again.
To prove this, let’s first study what is “Status Bar” in Applet?
To prove paint() method is called again and again, here is the code:
Note: This code is with respect to Netbeans IDE.
Example:
Java
//Code to illustrate paint
//method gets called again
//and again
import java.applet.*;
//to access showStatus()
import java.awt.*;//Graphic
//class is available in this package
import java.util.Date;
//to access Date object
public class GFG extends Applet
{
public void paint(Graphics g)
{
Date dt = new Date();
super.showStatus("Today is" + dt);
//in this line, super keyword is
// avoidable too.
}
}
Note: Here, we can see that if the screen is maximized or minimized we will get an updated time. This shows that paint() is called again and again.
Features of Applets over HTMLDue to security reasons, the following restrictions are imposed on Java applets:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4