What is an Applets ?

Applets

An applet is a Panel that allows interaction with a Java program.A applet is typically embedded in a Web page and can be run from a browser.You need special HTML in the Web page to tell the browser about the applet.For security reasons, applets run in a sandbox: they have no access to the client’s file system.
 


Applet Support

  • Most modern browsers support Java 1.4 if they have the appropriate plugin.
  • In the PC labs, Internet Explorer 5.5 has been updated, but Netscape has not.
  • The best support isn’t a browser, but the standalone program appletviewer.
  • In general you should try to write applets that can be run with any browser.

 


What an applet is

  • You write an applet by extending the class Applet.
  • Applet is just a class like any other; you can even use it in applications if you want.
  • When you write an applet, you are only writing part of a program.
  • The browser supplies the main method.

The genealogy of Applet

java.lang.Object
|
+—-java.awt.Component
|
+—-java.awt.Container
|
+—-java.awt.Panel
|
+—-java.applet.Applet
 

The simplest possible applet

TrivialApplet.java
import java.applet.Applet;
public class TrivialApplet extends Applet { }
 
TrivialApplet.html
<applet
code=”TrivialApplet.class”
width=150 height=100>
</applet>

Applet
Applet

 


The simplest reasonable applet

import java.awt.*;
import java.applet.Applet;
public class HelloWorld extends Applet {
public void paint( Graphics g ) {
g.drawString( “Hello World!”, 30, 30 );
}
}
 


Applet methods

  • public void init ()
  • public void start ()
  • public void stop ()
  • public void destroy ()
  • public void paint (Graphics)
  • public void repaint()
  • public void update (Graphics)
  • public void showStatus(String)
  • public String getParameter(String)

 


Why an applet works

  • You write an applet by extending the class Applet.
  • Applet defines methods init( ), start( ), stop( ), paint(Graphics), destroy( ).
  • These methods do nothing–they are stubs.
  • You make the applet do something by overriding these methods.
  • When you create an applet in BlueJ, it automatically creates sample versions of these methods for you.

public void init ( )

  • This is the first method to execute.
  • It is an ideal place to initialize variables.
  • It is the best place to define the GUI Components (buttons, text fields, scrollbars, etc.), lay them out, and add listeners to them.
  • Almost every applet you ever write will have an init( ) method.

 

public void start ( )

  • Not always needed.
  • Called after init( ).
  • Called each time the page is loaded and restarted.
  • Used mostly in conjunction with stop( ).
  • start() and stop( ) are used when the Applet is doing time-consuming calculations that you don’t want to continue when the page is not in front.

public void stop( )

  • Not always needed.
  • Called when the browser leaves the page.
  • Called just before destroy( ).
  • Use stop( ) if the applet is doing heavy computation that you don’t want to continue when the browser is on some other page.
  • Used mostly in conjunction with start().

public void destroy( )

  • Seldom needed.
  • Called after stop( ).
  • Use to explicitly release system resources (like threads).
  • System resources are usually released automatically.



Methods are called in this order

 

Applet
Methods Order

 

  • init and destroy are only called once each.
  • start and stop are called whenever the browser enters and leaves the page.
  • do some work is code called by your listeners.
  • paint is called when the applet needs to be repainted.

public void paint(Graphics g)

  • Needed if you do any drawing or painting other than just using standard GUI Components.
  • Any painting you want to do should be done here, or in a method you call from here.
  • Painting that you do in other methods may or may not happen.
  • Never call paint(Graphics), call repaint( ).

repaint( )

  • Call repaint( ) when you have changed something and want your changes to show up on the screen.
  • repaint( ) is a request–it might not happen.
  • When you call repaint( ), Java schedules a call to update(Graphics g).

update( )

  • When you call repaint( ), Java schedules a call to update(Graphics g)
  • Here’s what update does:

public void update(Graphics g) {
    // Fills applet with background color, then
    paint(g);
}
 


Sample Graphics methods

A Graphics is something you can paint on

  • g.drawString(“Hello”, 20, 20);
  • g.drawRect(x, y, width, height);
  • g.fillRect(x, y, width, height);
  • g.drawOval(x, y, width, height);
  • g.fillOval(x, y, width, height);
  • g.setColor(Color.red);

Output

Output
Output

 


Painting at the right time is hard

  • Rule #1: Never call paint(Graphics g), call repaint( ).
  • Rule #2: Do all your painting in paint, or in a method that you call from paint.
  • Rule #3: If you paint on any Graphics other than the Applet’s, call its update method from the Applet’s paint method.
  • Rule #4. Do your painting in a separate Thread.
  • These rules aren’t perfect, but they should help.

Other useful Applet methods

System.out.println(String s)

  • Works from appletviewer, not from browsers
  • Automatically opens an output window.

showStatus(String) displays the String in the applet’s status line.

  • Each call overwrites the previous call.
  • You have to allow time to read the line.

Applets are not magic

  • Anything you can do in an applet, you can do in an application.
  • You can do some things in an application that you can’t do in an applet.
  • If you want to access files from an applet, it must be a “trusted” applet.
  • Trusted applets are beyond the scope of this course.



Structure of an HTML page

  • Most HTML tags are containers.
  • A container is <tag> to </tag>

Structure of an HTML page
Structure of an HTML page

 


HTML

<html>
   <head>
       <title> Hi World Applet </title>
   </head>
   <body>
       <applet code=”HiWorld.class”
         width=300 height=200>
            <param name=”arraysize” value=”10″>
       </applet>
   </body>
</html>
 
<param name=”arraysize” value=”10″>

  • public String getParameter(String name)
  • String s = getParameter(“arraysize”);
  • try { size = Integer.parseInt (s) }
    catch (NumberFormatException e) {…}



One Reply to “What is an Applets ?

Comments are closed.