© Oxford University Press 2013. All rights reserved.
Programming in Java, 2e
Sachin Malhotra
Saurabh Choudhary
© Oxford University Press 2013. All rights reserved.
Chapter 12
Applets
© Oxford University Press 2013. All rights reserved.
Objectives
• Understand the difference between applet and
application
• Understand the lifecycle of an applet
• Learn how applets are created and executed
• create Shapes within applets
• Use Images in Applets
• Use Threads in Applet and create a Digital clock
© Oxford University Press 2013. All rights reserved.
Introduction
• Applet is small java programs, which can be easily
transported over the network from one computer to
other.
• used in internet applications,
• embedded in an html page, can be downloaded from
the server and run on the client, so as to do a specific
kind of job.
© Oxford University Press 2013. All rights reserved.
Difference between an applet and application
APPLET CLASS
• java.applet.Applet is the
super class of the all the
applets.
• Applet class has a
predefined hierarchy
Few methods of Applet class
© Oxford University Press 2013. All rights reserved.
Applet Structure
© Oxford University Press 2013. All rights reserved.
Applet Example
import java.applet.*;
import java.awt.*;
public class FirstApplet extends Applet {
public void paint(Graphics g) {
g.drawString(“applet demo”, 10,20);
}
}
© Oxford University Press 2013. All rights reserved.
Running an Applet
• There are two ways to run the applet.
1. Add the applet tag within the body of the html tag
<HTML><BODY>
<APPLET code = "FirstApplet.class" WIDTH = 200 HEIGHT =
150></APPLET>
</BODY></HTML>
You can execute the HTML file by giving appletviewer
FirstApplet.html
© Oxford University Press 2013. All rights reserved.
Running an Applet (contd.)
2. Add the Applet tag as a comment in the java source file
In order to run the applet You have to give the below HTML
coding as a comment in the source file :
/* <APPLET code = "FirstApplet.class" WIDTH = 200 HEIGHT =
150></APPLET> */
Execute the applet as: appletviewer FirstApplet.java
© Oxford University Press 2013. All rights reserved.
The Output
© Oxford University Press 2013. All rights reserved.
Applet Life cycle
• An applet may move from one state to another
depending upon a set of default behaviour inherited
in the form of methods from ‘Applet’ class.
• These states are
– Born
– Running
– Idle
– Dead
© Oxford University Press 2013. All rights reserved.
Applet State Diagram
© Oxford University Press 2013. All rights reserved.
Life cycle of Applet
• init() –
– creates the objects needed by the applet;
– sets up initial values, load font and images or set up colors.
– called only once during the lifetime of on Applet.
• start()
– moves to this phase automatically after the initialization state.
– if the applet is stopped or it goes to idle state, start() method must be called in
order to force the applet again to the running state.
• paint()
– This method is called each time to draw and redraw the output of an applet.
• stop()
– idle state, once it is stopped from running
• destroy()
– An applet goes to dead state when it is destroyed by invoking the destroy()
method of Applet class.
– It results in complete removal of applet from the memory.
© Oxford University Press 2013. All rights reserved.
Common Methods
• drawString():
– member of Graphics class, used to output a string to an applet.
– It is typically called from within the paint() or update() method.
– void drawString(String msg,int a, int b)
• setBackground() & getBackground()
– belongs to Component class, used to set and get the background color.
– void setBackground(Color anyColor)
– predefined constants for each color, such as Color.red can be used.
• setForeground() & get Foreground()
– set and gets the color of the text to be displayed on the foreground of
the applet window.
– void setForeground(Color anyColor)
• showStatus()
– display any string in the status window of the browser
– void showStatus(String text)
© Oxford University Press 2013. All rights reserved.
Example
/* <APPLET code = “ExampleApplet.class” WIDTH = 200 HEIGHT =
150></APPLET> */
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
public class ExampleApplet extends Applet{
String text;
public void init() {
setBackground(Color.white);
setForeground(Color.red);
text = “This is an example applet”;
System.out.println(“....Initialized the applet”);}
public void start() {
System.out.println(“....Starting of the applet”);}
© Oxford University Press 2013. All rights reserved.
Example (contd.)
public void stop() {
System.out.println(“....Stopping the applet”);}
public void destroy() {
System.out.println(“....Exiting the applet”);
}
public void paint(Graphics g) {
System.out.println(“....Painting the applet”);
g.drawString(text, 30, 30);
showStatus(“This is status bar”);
}}
The Output
Colour for Background and Font
• Color.black
• Color.blue
• Color.cyan
• Color.darkGray
• Color.magenta
• Color.orange
• Color.pink
• Color.red
• Color.gray
• Color.green
• Color.lightGray
• Color.white
• Color.yellow
© Oxford University Press 2013. All
rights reserved.
© Oxford University Press 2013. All rights reserved.
Paint, update & repaint
• All components and containers in the JDK have two
methods that are called by the system to paint their
surface.
– public void paint(Graphics g);
– public void update(Graphics g);
• If you wish that a drawing should appear in a window,
you shall override either or both of the methods.
• paint()
– for drawing/redrawing paint() method is called.
– The component draws itself when it first becomes visible.
– The component paint() method is also invoked when the
window containing it is uncovered, if it is covered by another
window.
© Oxford University Press 2013. All rights reserved.
Example
/* <APPLET code = “FillOval.class” WIDTH = 200 HEIGHT =
200></APPLET> */
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
public class FillOval extends Applet{
public void paint(Graphics g) {
g.setColor(Color.red);
g.fillOval(20, 20, 60, 60);
}
}
© Oxford University Press 2013. All rights reserved.
The Output
© Oxford University Press 2013. All rights reserved.
update() method
• It clears the surface of the calling component to its
background color and then calls the paint() method
to paint the rest of the component.
• It makes the job easier because one does not have to
draw the whole component within a paint() method,
as the background is already filled. Then, when one
overrides paint(), he/she only needs to draw what
should appear on the foreground.
© Oxford University Press 2013. All rights reserved.
repaint() method
• if you have changed certain properties of a component to
reflect its new appearance, you can call the repaint() method.
– text.setBackground(Color.blue);
– text.repaint();
• Calling the repaint() method causes the whole component to
be repainted.
• repaint() in its default implementation calls update() which in
turn calls paint().
• repaint() method requests the AWT to call update and it
returns. The AWT combines multiple rapid repaint requests
into one request (usually this happens when you repaint
inside a loop). So the last repaint in the sequence actually
causes paint().
© Oxford University Press 2013. All rights reserved.
Applet Tag
© Oxford University Press 2013. All rights reserved.
Applet Tag
• CODEBASE - specifies the URL of the directory where the executable
class file of the applet will be searched for.
• CODE - It gives the name of the file containing the applet’s
compiled class file.
• ALT - specifies the alternate short text message that should be
displayed in case the browser recognizes the HTML tag but cannot
actually run the applet because of some reason.
• NAME - give a name to an applet’s instance
• WIDTH - gives the width of the applet display area in terms of
pixels.
• HEIGHT - gives the height of the applet display area in terms of
pixels.
• ALIGN - set the alignment of an applet. The alignment can be set as
LEFT, RIGHT, TOP, BOTTOM, MIDDLE, BASELINE, TEXTTOP,
ABSMIDDLE, and ABSBOTTOM.
• VSPACE - used to specify the space, in pixels, above and below the
applet.
© Oxford University Press 2013. All rights reserved.
Applet tag (contd.)
• HSPACE
– These are used to specify the space, in pixels, on each
side of the applet.
• PARAM sub tag
– provides information about parameters, or arguments, to be
used by the Java applet.
– The <PARAM> tag is simple—it NAMES a parameter and
provides a VALUE for that parameter.
– This tag has two attributes
• NAME: attribute name
• VALUE: value of the attribute named by corresponding PARAM NAME.
– The applets access their attributes using the getParameter()
method.
– String getParameter(String name);
© Oxford University Press 2013. All rights reserved.
Param tag Example
/*<APPLET CODE = ParamPassing.class WIDTH = 300 HEIGHT = 250>
<param NAME = yourName VALUE = John>
<param NAME = yourProfession VALUE = consultant>
<param NAME = yourAge VALUE = 35> </applet>*/
import java.awt.*;
import java.applet.*;
public class ParamPassing extends Applet {
String name;
String profession;
int age;
public void start() {
String str;
name = getParameter(“yourName”);
if (name == null) name = “not found”;
str = getParameter(“yourProfession”);
if (str != null) profession = str;
© Oxford University Press 2013. All rights reserved.
Param Tag Example (contd.)
else profession = “No job”;
str = getParameter(“yourAge”);
try {
if (str != null)
age = Integer.parseInt(str);
else age = 0;
} catch (NumberFormatException e) {}
}
public void paint(Graphics g) {
g.drawString(“your name: “+name, 10, 10);
g.drawString(“your profession: “+profession, 10, 30);
g.drawString(“your age: “ +age, 10, 50);
}}
© Oxford University Press 2013. All rights reserved.
The Output
© Oxford University Press 2013. All rights reserved.
getDocumentBase() and getCodeBase()
• getDocumentBase() returns the URL of the directory
that holds the HTML file responsible for starting the
applet in the form of URL object
• getCodeBase() returns the URL object of the
directory from where the class file of the applet is
loaded.
© Oxford University Press 2013. All rights reserved.
Graphics class
© Oxford University Press 2013. All rights reserved.
© Oxford University Press 2013. All rights reserved.
© Oxford University Press 2013. All rights reserved.
import java.awt.* ;
import java.applet.* ;
public class DrawLineRect extends Applet {
public void paint(Graphics g){
g.drawRect(10,60,40,30);
g.fillRect(60,10,30,80);
g.fillOval(140,160,170,170);
g.drawRoundRect(10,100,80,50,10,10);
g.fillRoundRect(20,110,60,30,5,5);
g.drawArc(280,210,250,220,30,90);
g.drawLine(100,10,230,140);
g.drawLine(100,140,230,10);
}}
© Oxford University Press 2013. All rights reserved.
The Output
© Oxford University Press 2013. All rights reserved.
Font & Color class
Constructors of Color class
© Oxford University Press 2013. All rights reserved.
© Oxford University Press 2013. All rights reserved.
/*<applet code=ColorFont.class width=600 height = 270 > < / applet >*/
import java.awt.*;
public class ColorFont extends java.applet.Applet{
public void init() {
Color color1 = new Color(230, 220, 0);
setBackground(color1);}
public void paint(Graphics g) {
String str = “”;
String FontList[];
GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment();
FontList = ge.getAvailableFontFamilyNames();
for (int i =0; i<FontList.length; i++) {
g.drawString(“FONTS AVAILABLE ARE:”, 5, 30);
str += FontList[i] + “, “;
© Oxford University Press 2013. All rights reserved.
Example (contd.)
g.drawString(str,5, 50);}
Color color2 = new Color(235, 50, 50);
g.setColor(color2);
g.drawString(“Hey Look!!!”, 5, 180);
Font currentFont = new Font(“TimesRoman”, Font.PLAIN, 20);
g.setFont(currentFont);
g.drawString(“This is an example”, 5, 220);
currentFont = new Font(“TimesRoman”, Font.ITALIC, 40);
g.setFont(currentFont);
g.drawString(“You must have understood.....”, 5, 260);}}
© Oxford University Press 2013. All rights reserved.
The Output
© Oxford University Press 2013. All rights reserved.
Summary
• Applets are small programs which can be downloaded from a remote
server in its bytecode form and executed on the client, to do a specific job.
• In Java, applets can be dealt in two ways.
• conventional applet, which use Abstract Window Toolkit (AWT) to get the
GUI features.
• Other use SWINGS, These applets can be executed on the clients, with the
help of either a Java enabled browser or a utility known as appletviewer
• Applets have a proper life cycle in which an applet moves from one state
to other.
• These states of applet life cycle are: Born, Running, Idle, and Dead.
• methods such as init(), start(), stop(), and destroy() are respectively called
to force an applet to different state.
• We have given you an insight of how to handle images and audio files and
have a basic understanding of graphics.
• We have also seen How to use Threads in Applets.

java programming - applets

  • 1.
    © Oxford UniversityPress 2013. All rights reserved. Programming in Java, 2e Sachin Malhotra Saurabh Choudhary
  • 2.
    © Oxford UniversityPress 2013. All rights reserved. Chapter 12 Applets
  • 3.
    © Oxford UniversityPress 2013. All rights reserved. Objectives • Understand the difference between applet and application • Understand the lifecycle of an applet • Learn how applets are created and executed • create Shapes within applets • Use Images in Applets • Use Threads in Applet and create a Digital clock
  • 4.
    © Oxford UniversityPress 2013. All rights reserved. Introduction • Applet is small java programs, which can be easily transported over the network from one computer to other. • used in internet applications, • embedded in an html page, can be downloaded from the server and run on the client, so as to do a specific kind of job.
  • 5.
    © Oxford UniversityPress 2013. All rights reserved. Difference between an applet and application
  • 6.
    APPLET CLASS • java.applet.Appletis the super class of the all the applets. • Applet class has a predefined hierarchy
  • 7.
    Few methods ofApplet class
  • 8.
    © Oxford UniversityPress 2013. All rights reserved. Applet Structure
  • 9.
    © Oxford UniversityPress 2013. All rights reserved. Applet Example import java.applet.*; import java.awt.*; public class FirstApplet extends Applet { public void paint(Graphics g) { g.drawString(“applet demo”, 10,20); } }
  • 10.
    © Oxford UniversityPress 2013. All rights reserved. Running an Applet • There are two ways to run the applet. 1. Add the applet tag within the body of the html tag <HTML><BODY> <APPLET code = "FirstApplet.class" WIDTH = 200 HEIGHT = 150></APPLET> </BODY></HTML> You can execute the HTML file by giving appletviewer FirstApplet.html
  • 11.
    © Oxford UniversityPress 2013. All rights reserved. Running an Applet (contd.) 2. Add the Applet tag as a comment in the java source file In order to run the applet You have to give the below HTML coding as a comment in the source file : /* <APPLET code = "FirstApplet.class" WIDTH = 200 HEIGHT = 150></APPLET> */ Execute the applet as: appletviewer FirstApplet.java
  • 12.
    © Oxford UniversityPress 2013. All rights reserved. The Output
  • 13.
    © Oxford UniversityPress 2013. All rights reserved. Applet Life cycle • An applet may move from one state to another depending upon a set of default behaviour inherited in the form of methods from ‘Applet’ class. • These states are – Born – Running – Idle – Dead
  • 14.
    © Oxford UniversityPress 2013. All rights reserved. Applet State Diagram
  • 15.
    © Oxford UniversityPress 2013. All rights reserved. Life cycle of Applet • init() – – creates the objects needed by the applet; – sets up initial values, load font and images or set up colors. – called only once during the lifetime of on Applet. • start() – moves to this phase automatically after the initialization state. – if the applet is stopped or it goes to idle state, start() method must be called in order to force the applet again to the running state. • paint() – This method is called each time to draw and redraw the output of an applet. • stop() – idle state, once it is stopped from running • destroy() – An applet goes to dead state when it is destroyed by invoking the destroy() method of Applet class. – It results in complete removal of applet from the memory.
  • 16.
    © Oxford UniversityPress 2013. All rights reserved. Common Methods • drawString(): – member of Graphics class, used to output a string to an applet. – It is typically called from within the paint() or update() method. – void drawString(String msg,int a, int b) • setBackground() & getBackground() – belongs to Component class, used to set and get the background color. – void setBackground(Color anyColor) – predefined constants for each color, such as Color.red can be used. • setForeground() & get Foreground() – set and gets the color of the text to be displayed on the foreground of the applet window. – void setForeground(Color anyColor) • showStatus() – display any string in the status window of the browser – void showStatus(String text)
  • 17.
    © Oxford UniversityPress 2013. All rights reserved. Example /* <APPLET code = “ExampleApplet.class” WIDTH = 200 HEIGHT = 150></APPLET> */ import java.applet.Applet; import java.awt.Color; import java.awt.Graphics; public class ExampleApplet extends Applet{ String text; public void init() { setBackground(Color.white); setForeground(Color.red); text = “This is an example applet”; System.out.println(“....Initialized the applet”);} public void start() { System.out.println(“....Starting of the applet”);}
  • 18.
    © Oxford UniversityPress 2013. All rights reserved. Example (contd.) public void stop() { System.out.println(“....Stopping the applet”);} public void destroy() { System.out.println(“....Exiting the applet”); } public void paint(Graphics g) { System.out.println(“....Painting the applet”); g.drawString(text, 30, 30); showStatus(“This is status bar”); }}
  • 19.
  • 20.
    Colour for Backgroundand Font • Color.black • Color.blue • Color.cyan • Color.darkGray • Color.magenta • Color.orange • Color.pink • Color.red • Color.gray • Color.green • Color.lightGray • Color.white • Color.yellow © Oxford University Press 2013. All rights reserved.
  • 21.
    © Oxford UniversityPress 2013. All rights reserved. Paint, update & repaint • All components and containers in the JDK have two methods that are called by the system to paint their surface. – public void paint(Graphics g); – public void update(Graphics g); • If you wish that a drawing should appear in a window, you shall override either or both of the methods. • paint() – for drawing/redrawing paint() method is called. – The component draws itself when it first becomes visible. – The component paint() method is also invoked when the window containing it is uncovered, if it is covered by another window.
  • 22.
    © Oxford UniversityPress 2013. All rights reserved. Example /* <APPLET code = “FillOval.class” WIDTH = 200 HEIGHT = 200></APPLET> */ import java.applet.Applet; import java.awt.Color; import java.awt.Graphics; public class FillOval extends Applet{ public void paint(Graphics g) { g.setColor(Color.red); g.fillOval(20, 20, 60, 60); } }
  • 23.
    © Oxford UniversityPress 2013. All rights reserved. The Output
  • 24.
    © Oxford UniversityPress 2013. All rights reserved. update() method • It clears the surface of the calling component to its background color and then calls the paint() method to paint the rest of the component. • It makes the job easier because one does not have to draw the whole component within a paint() method, as the background is already filled. Then, when one overrides paint(), he/she only needs to draw what should appear on the foreground.
  • 25.
    © Oxford UniversityPress 2013. All rights reserved. repaint() method • if you have changed certain properties of a component to reflect its new appearance, you can call the repaint() method. – text.setBackground(Color.blue); – text.repaint(); • Calling the repaint() method causes the whole component to be repainted. • repaint() in its default implementation calls update() which in turn calls paint(). • repaint() method requests the AWT to call update and it returns. The AWT combines multiple rapid repaint requests into one request (usually this happens when you repaint inside a loop). So the last repaint in the sequence actually causes paint().
  • 26.
    © Oxford UniversityPress 2013. All rights reserved. Applet Tag
  • 27.
    © Oxford UniversityPress 2013. All rights reserved. Applet Tag • CODEBASE - specifies the URL of the directory where the executable class file of the applet will be searched for. • CODE - It gives the name of the file containing the applet’s compiled class file. • ALT - specifies the alternate short text message that should be displayed in case the browser recognizes the HTML tag but cannot actually run the applet because of some reason. • NAME - give a name to an applet’s instance • WIDTH - gives the width of the applet display area in terms of pixels. • HEIGHT - gives the height of the applet display area in terms of pixels. • ALIGN - set the alignment of an applet. The alignment can be set as LEFT, RIGHT, TOP, BOTTOM, MIDDLE, BASELINE, TEXTTOP, ABSMIDDLE, and ABSBOTTOM. • VSPACE - used to specify the space, in pixels, above and below the applet.
  • 28.
    © Oxford UniversityPress 2013. All rights reserved. Applet tag (contd.) • HSPACE – These are used to specify the space, in pixels, on each side of the applet. • PARAM sub tag – provides information about parameters, or arguments, to be used by the Java applet. – The <PARAM> tag is simple—it NAMES a parameter and provides a VALUE for that parameter. – This tag has two attributes • NAME: attribute name • VALUE: value of the attribute named by corresponding PARAM NAME. – The applets access their attributes using the getParameter() method. – String getParameter(String name);
  • 29.
    © Oxford UniversityPress 2013. All rights reserved. Param tag Example /*<APPLET CODE = ParamPassing.class WIDTH = 300 HEIGHT = 250> <param NAME = yourName VALUE = John> <param NAME = yourProfession VALUE = consultant> <param NAME = yourAge VALUE = 35> </applet>*/ import java.awt.*; import java.applet.*; public class ParamPassing extends Applet { String name; String profession; int age; public void start() { String str; name = getParameter(“yourName”); if (name == null) name = “not found”; str = getParameter(“yourProfession”); if (str != null) profession = str;
  • 30.
    © Oxford UniversityPress 2013. All rights reserved. Param Tag Example (contd.) else profession = “No job”; str = getParameter(“yourAge”); try { if (str != null) age = Integer.parseInt(str); else age = 0; } catch (NumberFormatException e) {} } public void paint(Graphics g) { g.drawString(“your name: “+name, 10, 10); g.drawString(“your profession: “+profession, 10, 30); g.drawString(“your age: “ +age, 10, 50); }}
  • 31.
    © Oxford UniversityPress 2013. All rights reserved. The Output
  • 32.
    © Oxford UniversityPress 2013. All rights reserved. getDocumentBase() and getCodeBase() • getDocumentBase() returns the URL of the directory that holds the HTML file responsible for starting the applet in the form of URL object • getCodeBase() returns the URL object of the directory from where the class file of the applet is loaded.
  • 33.
    © Oxford UniversityPress 2013. All rights reserved. Graphics class
  • 34.
    © Oxford UniversityPress 2013. All rights reserved.
  • 35.
    © Oxford UniversityPress 2013. All rights reserved.
  • 36.
    © Oxford UniversityPress 2013. All rights reserved. import java.awt.* ; import java.applet.* ; public class DrawLineRect extends Applet { public void paint(Graphics g){ g.drawRect(10,60,40,30); g.fillRect(60,10,30,80); g.fillOval(140,160,170,170); g.drawRoundRect(10,100,80,50,10,10); g.fillRoundRect(20,110,60,30,5,5); g.drawArc(280,210,250,220,30,90); g.drawLine(100,10,230,140); g.drawLine(100,140,230,10); }}
  • 37.
    © Oxford UniversityPress 2013. All rights reserved. The Output
  • 38.
    © Oxford UniversityPress 2013. All rights reserved. Font & Color class Constructors of Color class
  • 39.
    © Oxford UniversityPress 2013. All rights reserved.
  • 40.
    © Oxford UniversityPress 2013. All rights reserved. /*<applet code=ColorFont.class width=600 height = 270 > < / applet >*/ import java.awt.*; public class ColorFont extends java.applet.Applet{ public void init() { Color color1 = new Color(230, 220, 0); setBackground(color1);} public void paint(Graphics g) { String str = “”; String FontList[]; GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); FontList = ge.getAvailableFontFamilyNames(); for (int i =0; i<FontList.length; i++) { g.drawString(“FONTS AVAILABLE ARE:”, 5, 30); str += FontList[i] + “, “;
  • 41.
    © Oxford UniversityPress 2013. All rights reserved. Example (contd.) g.drawString(str,5, 50);} Color color2 = new Color(235, 50, 50); g.setColor(color2); g.drawString(“Hey Look!!!”, 5, 180); Font currentFont = new Font(“TimesRoman”, Font.PLAIN, 20); g.setFont(currentFont); g.drawString(“This is an example”, 5, 220); currentFont = new Font(“TimesRoman”, Font.ITALIC, 40); g.setFont(currentFont); g.drawString(“You must have understood.....”, 5, 260);}}
  • 42.
    © Oxford UniversityPress 2013. All rights reserved. The Output
  • 43.
    © Oxford UniversityPress 2013. All rights reserved. Summary • Applets are small programs which can be downloaded from a remote server in its bytecode form and executed on the client, to do a specific job. • In Java, applets can be dealt in two ways. • conventional applet, which use Abstract Window Toolkit (AWT) to get the GUI features. • Other use SWINGS, These applets can be executed on the clients, with the help of either a Java enabled browser or a utility known as appletviewer • Applets have a proper life cycle in which an applet moves from one state to other. • These states of applet life cycle are: Born, Running, Idle, and Dead. • methods such as init(), start(), stop(), and destroy() are respectively called to force an applet to different state. • We have given you an insight of how to handle images and audio files and have a basic understanding of graphics. • We have also seen How to use Threads in Applets.