0% found this document useful (0 votes)
123 views

Applets: CS 3331 Fall 2008

This document discusses Java applets. It begins with an introduction to applets and how they differ from applications. It then provides an example "HelloWorldApplet" to demonstrate how to create a basic applet. The document outlines the key elements of applets, including using the Applet subclass, the paint method, and embedding the applet in an HTML file. It also covers the applet lifecycle methods like init(), start(), stop(), and destroy(). Finally, it presents a more complex example of an animated digital clock applet.

Uploaded by

swet bhushan
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
123 views

Applets: CS 3331 Fall 2008

This document discusses Java applets. It begins with an introduction to applets and how they differ from applications. It then provides an example "HelloWorldApplet" to demonstrate how to create a basic applet. The document outlines the key elements of applets, including using the Applet subclass, the paint method, and embedding the applet in an HTML file. It also covers the applet lifecycle methods like init(), start(), stop(), and destroy(). Finally, it presents a more complex example of an animated digital clock applet.

Uploaded by

swet bhushan
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 30

Applets

CS 3331
Fall 2008

1
Outline

 Basics of applets
 First applet – HelloWorldApplet.java
 More on applets
 Animation applet – digital clock

2
What Are Applets?
 An applet is a special Java program that
can be embedded in HTML documents.
 It is automatically executed by (applet-
enabled) web browsers.
 In Java, non-applet programs are called
applications.

3
Application vs. Applet
 Application
 Trusted (i.e., has full access to system resources)
 Invoked by Java Virtual Machine (JVM, java), e.g.,
java HelloWorld
 Should contain a main method, i.e.,
public static void main(String[])
 Applet
 Not trusted (i.e., has limited access to system
resource to prevent security breaches)
 Invoked automatically by the web browser
 Should be a subclass of class
java.applet.Applet

4
Examples
 HelloWorld.java

public class HelloWord {


public static void main(String[] args) {
System.out.println(“Hello, World!”);
}
}

 HelloWorldApplet.java

5
First Java Applet
 Java source in HelloWorldApplet.java
import java.awt.*;
import java.applet.Applet;
public class HelloWorldApplet extends Applet {
public void paint(Graphics g) {
Dimension d = getSize();
g.setColor(Color.BLACK);
g.fillRect(0, 0, d.width, d.height); // paint background
g.setFont(new Font("San-serif", Font.BOLD, 24));
g.setColor(new Color(255, 215,0));
g.drawString("Hello, world!", 60, 40);
g.drawImage(getImage(getCodeBase(), “Rabbit.jpg"),
20, 60, this);
}
}
6
Graphics Coordinate

(0,0) x

height

width

7
Embedding Applet into HTML
 HTML source in HelloWorld.html
<!--HelloWorld.html-->
<html>
<head>
<title>HelloWord</title>
</head>
<body>
<center>
<applet code="HelloWorldApplet.class"
width=300 height=350></applet>
</center>
<hr/>
<a href="HelloWorldApplet.java">The source.</a>
</body>
</html>
8
Compiling and Running
 To compile
javac HelloWorldApplet.java
Produces HelloWorldApplet.class
 To run
 Open page HelloWorld.htmlfrom web
browser or
 Use appletviewer of JDK

appletviewer HelloWorld.html

9
Elements of Applets
 Superclass: java.applet.Applet
 No main method
 paint method to paint the picture
 Applet tag: <applet> </applet>
 code

 width and height

10
Outline

 Basics of applets
 First applet – HelloWorldApplet.java
 More on applets
 Animation applet – digital clock

11
Framework-Based Programming
 (OO) Frameworks
 Semi-complete applications.
 Provide the structure (backbone) and utilities
for applications.
 Often domain specific.

 Inversion of control.

 Examples: applets, GUI frameworks, etc.

12
The Class Applet

java.awt.Panel

java.applet.Applet

destroy()
init()
start()
stop()

13
The Life-Cycle of Applet
 init()
 Called exactly once in an applet’s life.
 Called when applet is first loaded, which is
after object creation, e.g., when the browser
visits the web page for the first time.
 Used to read applet parameters, start
downloading any other images or media
files, etc.

14
Applet Life-Cycle (Cont.)
 start()
 Called at least once.
 Called when an applet is started or
restarted, i.e., whenever the browser visits
the web page.
 stop()
 Called at least once.
 Called when the browser leaves the web
page.

15
Applet Life-Cycle (Cont.)
 destroy()
 Called exactly once.
 Called when the browser unloads the applet.

 Used to perform any final clean-up.

init

start destroy
stop

start

16
Outline

 Basics of applets
 First applet – HelloWorldApplet.java
 More on applets
 Animation applet – digital clock

17
Animation Applet --- Digital Clock

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Calendar;

public class DigitalClock


extends java.applet.Applet {

<Fields>
<Methods>
}

An applet must be a subclass of java.applet.Applet.

18
Program Structure

java.applet.Applet

DigitalClock 1
javax.swing.Timer
+ start(): void
+ stop(): void <<use>>
java.util.Calendar
+ paint(g: Graphics) : void

<<use>> <<use>>

java.awt java.awt.event

19
Methods for Digital Clock

 public void start(){...}


invoked when entering the web page that
contains the applet
 public void stop(){...}
invoked when leaving the web page that contains
the applet
 public void paint(Graphics g){...}
paint the picture

20
Field Declarations

protected Timer timer;


protected Font font =
new Font("Monospaced", Font.BOLD, 48);

protected Color color = Color.GREEN;

21
Object Initialization

public DigitalClock() {
timer = new Timer(1000, createTimerTickHandler());
}

protected ActionListener createTimerTickHandler() {


return new ActionListener() {
public void actionPerformed(ActionEvent event) {
repaint();
}
};
}

22
The start() and stop() Methods

public void start() {


timer.start();
}

public void stop() {


timer.stop();
}

 Start and stop the timer


 Stopped timer will not consume CPU time.

23
The paint() Method

public void paint(Graphics g) {


Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
g.setFont(font);
g.setColor(color);
g.drawString(hour / 10 + hour % 10 +
":" + minute / 10 + minute % 10 +
":" + second / 10 + second % 10,
10, 60);
}

24
Who Calls the paint()method?

 Timer ticks and calls


ActionListener.actionPerformed()
 ActionListener.actionPerformed()
calls DigitalClock.repaint()
 DigitalClock.repaint() calls
DigitalClock.paint()
 The paint() method is usually not called
directly.

25
Drawing Strings

g.drawString("A sample string", x, y)

26
HTML Source

<!-- DigitalClock.html -->


<html>
<head>
<title>Digital Clock Applet</title>
</head>
<body bgcolor=black>
<h1>The Digital Clock Applet</h1><p>
<applet code=DigitalClock.class width=250 height=80>
</applet>
<p><hr>
<a href=DigitalClock.java>The source</a>
</body>
</html>

27
The java.awt.Color Class

 Instances of the Color class represent colors.


new Color(r, g, b)

where r, g, b are the values of the red, green, and


blue components, respectively. They are in the in
the range of 0 to 255.
 Predefined constants
BLACK ORANGE YELLOW BLUE GREEN PINK
CYAN LIGHTGRAY RED ARKGRAY MAGENTA
WHITE

28
The java.awt.Font Class
 Fonts are specified with three attributes:
 font name:
Serif Sans-serif Monospaced Dialog
DialogInput TimesRoman Helvetica Courier
 font style:
PLAIN BOLD ITALIC
Styles can be combined: Font.BOLD|Font.ITALIC
 font size: a positive integer
 A font can be created as follows:
new Font(name, style, size)

29
Exercise
 Write an applet class named CuckooDigitalClock that
behaves like DigitalClock except that it cuckoos at every
hour by playing an audio file “cuckoo.au”.

Hints
 To play an audio file, use play(getCodeBase(), “cuckoo.au”).
 To get the current time, use the class java.util.Calendar, e.g.,
Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);

30

You might also like