Download Applet

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
1
Chapter 3 - Introduction to Java
Applets
Will not cover
Section 3.7 Thinking About Objects: Identifying the Classes in a
Problem Statement
 2003 Prentice Hall, Inc. All rights reserved.
2
Applet
A program that runs in:
1. Web browser
– Executes when HTML (Hypertext Markup Language)
document containing applet is opened
– When a browser executes an applet, the browser is
called the applet container
OR
2. appletviewer (Java test utility for applets):
Also, when the appletviewer executes an applet,
the appletviewer is called the applet container
 2003 Prentice Hall, Inc. All rights reserved.
3
Running Two Sample Applets from the Java 2
Software Development Kit
• TicTacToe
• Java2Demo
 2003 Prentice Hall, Inc. All rights reserved.
4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Fig. 3.6: WelcomeApplet.java
// A first applet in Java.
// Java packages
import java.awt.Graphics;
import javax.swing.JApplet;
import allows us to use
predefined classes (allowing
us to use applets and
import
class in
Graphics
graphics,
this case).
//
// import class JApplet
Outline
Java applet
public class WelcomeApplet extends JApplet {
extends allows us to inherit the
// draw text on applet’s background
public void paint( Graphics g )
capabilities of class JApplet.
{
// call superclass version of method paint
super.paint( g );
// draw a String at x-coordinate 25 and y-coordinate 25
g.drawString( "Welcome to Java Programming!", 25, 25 );
} // end method paint
} // end class WelcomeApplet
Method paint is called in all
applets. Its first line must be
defined as above.
Program Output
 2003 Prentice Hall, Inc.
All rights reserved.
Discussing the Applet ( I )
8
public class WelcomeApplet extends JApplet {
– Applets have at least one class declaration
– Use pieces of existing classes
– Create new classes from old ones: Inheritance (ch. 9)
– Begins class declaration for class WelcomeApplet
– Keyword public required; File can only
have one public class
– extends followed by class name (JApplet)
• Indicates WelcomeApplet to extend JApplet
– JApplet : superclass
– WelcomeApplet : subclass
• WelcomeApplet now has methods and data of JApplet
– Class JApplet defined for us
• Applets require over 200 methods!
 2003 Prentice Hall, Inc. All rights reserved.
5
6
Discussing the Applet ( II )
11
public void paint( Graphics g )
• WelcomeApplet inherits method paint from
JApplet
– By default, paint has empty body
– Redefine paint in WelcomeApplet
• Methods paint, init, and start
– Guaranteed to be called automatically
– WelcomeApplet gets "free" version of these by inheriting
from JApplet
• Free versions have empty body (do nothing)
• Every applet does not need all three methods
– Override/ Redefine the ones you need from paint, init, and
start
• Applet container “draws itself” by calling method
paint
 2003 Prentice Hall, Inc. All rights reserved.
7
Discussing the Applet ( III ): Method paint
11
public void paint( Graphics g )
– Draws graphics on screen
– void indicates paint returns nothing when finishes task
– Parenthesis define parameter list - where methods receive
data to perform tasks
– paint gets parameters automatically
• Graphics object (called g, created by applet container) used
by paint
– Mimic paint's first line
 2003 Prentice Hall, Inc. All rights reserved.
8
Discussing the Applet ( IV )
14
super.paint( g );
– Calls version of method paint from superclass JApplet
– Should be first statement in every applet’s paint method
17
g.drawString( "Welcome to Java Programming!", 25, 25 );
– Body of paint
• Method drawString (of class Graphics)
• Called using Graphics object g and dot (.)
• parenthesis contain arguments
– First argument: String to draw
– Second: x coordinate (in pixels) location
– Third: y coordinate (in pixels) location
– Java coordinate system
• Measured in pixels (picture elements)
• Upper left is (0,0)
 2003 Prentice Hall, Inc. All rights reserved.
9
Running the applet
– Compile
– Create an HTML file
• File extension type htm or html
• Indicates which applet the browser (or appletviewer)
should load and execute
– Execute usinge a browser or appletviewer
 2003 Prentice Hall, Inc. All rights reserved.
10
HTML Code for Applet (I)
1
2
3
4
<html>
<applet code = "WelcomeApplet.class" width = "300" height = "45">
</applet>
</html>
– Simple HTML file (WelcomeApplet.html)
• Usually in same directory as .class file
– HTML codes (tags)
• Begin with < and end with >
– <html> begin ; </html> end tags
– <applet code = "WelcomeApplet.class" width = "300"
height = "45“ >
– tag
• Specifies code to use for applet
• Specifies width and height of display area in pixels
– </applet> marks end of applet
 2003 Prentice Hall, Inc. All rights reserved.
11
HTML Code for Applet (II)
1
2
3
4
<html>
<applet code = "WelcomeApplet.class" width = "300" height = "45">
</applet>
</html>
– appletviewer only understands <applet> tags
• Ignores everything else
– Executing the applet
• appletviewer WelcomeApplet.html
• Perform in directory containing .class file
 2003 Prentice Hall, Inc. All rights reserved.
12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Fig. 3.9: WelcomeApplet2.java
// Displaying multiple strings in an applet.
// Java packages
import java.awt.Graphics;
import javax.swing.JApplet;
// import class Graphics
// import class JApplet
public class WelcomeApplet2 extends JApplet {
// draw text on applet’s background
public void paint( Graphics g )
{
// call superclass version of method paint
super.paint( g );
// draw two Strings at different locations
g.drawString( "Welcome to", 25, 25 );
g.drawString( "Java Programming!", 25, 40 );
Outline
WelcomeApplet2.j
ava
1. import
2. Class
WelcomeApplet2
(extends
JApplet)
3. paint
3.1 drawString
} // end method paint
} // end class WelcomeApplet2
The two drawString3.2 drawString
on same In
x coordinate,
statements simulate a newline.
but
pixels down
fact, the concept of lines
of15
text
does not exist when drawing
strings.
 2003 Prentice Hall, Inc.
All rights reserved.
13
Outline
1
2
3
4
<html>
<applet code = "WelcomeApplet2.class" width = "300" height = "60">
</applet>
</html>
HTML file
Program Output
 2003 Prentice Hall, Inc.
All rights reserved.
14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Fig. 3.11: WelcomeLines.java
// Displaying text and lines
// Java packages
import java.awt.Graphics;
import javax.swing.JApplet;
// import class Graphics
// import class JApplet
public class WelcomeLines extends JApplet {
// draw lines and a string on applet’s background
public void paint( Graphics g )
{
// call superclass version of method paint
super.paint( g );
// draw horizontal line from (15, 10) to (210, 10)
g.drawLine( 15, 10, 210, 10 );
// draw horizontal line from (15, 30) to (210, 30)
g.drawLine( 15, 30, 210, 30 );
// draw String between lines at location (25, 25)
g.drawString( "Welcome to Java Programming!", 25, 25 );
Outline
WelcomeLines.ja
va
2. Class
WelcomeLines
(extends
JApplet)
3. paint
3.1 drawLine
3.2 drawLine
Draw horizontal lines with
drawLine (endpoints
have same
3.3 drawString
x coordinate).
} // end method paint
} // end class WelcomeLines
Program Output
 2003 Prentice Hall, Inc.
All rights reserved.
15
1
2
3
4
<html>
<applet code = "WelcomeLines.class" width = "300" height = "40">
</applet>
</html>
Outline
HTML file
 2003 Prentice Hall, Inc.
All rights reserved.
16
3.4
Drawing Strings and Lines
• Method drawLine of class Graphics
– Takes as arguments Graphics object and line’s end points
– X and y coordinate of first endpoint
– X and y coordinate of second endpoint
 2003 Prentice Hall, Inc. All rights reserved.
17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Outline
// Fig. 3.13: AdditionApplet.java
// Adding
Adding two
numbers.
//
two floating-point
floating-point
numbers
import java.awt.Graphics;
// import class Graphics
// Java packages
import java.awt.Graphics;
// import class Graphics
import javax.swing.*;
//extends
import package
public
class AdditionApplet
JAppletjavax.swing
{
double sum;
AdditionApplet.
java
// sum of the values entered by the user
public class AdditionApplet extends JApplet {
double sum; // sum of values entered by user
public void init()
* allows any class in the
{
// initialize applet by obtaining valuespackage
from user
to be used.
String
firstNumber,
//
first
string
entered
by user
public void init()
secondNumber; // second string entered by user
{
doublefirstNumber;
number1,
// first
number
to add
String
// first
string
entered
by user
number2;
//
second
number
to
String secondNumber; // second string entered add
by user
// read
in first
double
number1;
firstNumber
=
double
number2;
Field sum may be used anywhere
number
fromnumber
user to add
// first
in the class, even in other methods.
// second number to add
JOptionPane.showInputDialog( Type double can
// obtain
first first
numberfloating-point
from user
"Enter
value"
);
point
numbers.
firstNumber = JOptionPane.showInputDialog(
first
floating-point
value"
//"Enter
read in
second
number from
user);
secondNumber =
// obtain second number from user
JOptionPane.showInputDialog(
secondNumber = JOptionPane.showInputDialog(
"Enter second floating-point value" );
"Enter second floating-point value" );
store floating
1. import
2. Class
AdditionApplet
(extends
JApplet)
3. Fields
4. init
4.1 Declare variables
4.2
showInputDialog
4.3 parseDouble
// convert numbers from type String to type double
number1 = Double.parseDouble( firstNumber );
number2 = Double.parseDouble( secondNumber );
 2003 Prentice Hall, Inc.
All rights reserved.
18
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
1
2
3
4
31
32
33
}
} // end method init
34
35
public
void paint(
Graphics on
g )applet’s background
//
draw results
in a rectangle
{
public
void paint( Graphics g )
{
// draw the results with g.drawString
//
call superclass
version
paint
g.drawRect(
15, 10,
270,of20method
);
super.paint( g );
36
37
38
39
g.drawString( "The sum is " + sum, 25, 25 );
40
}
41 }
1
2
3
4
Outline
//
//add
addnumbers
the numbers
sum
=
number1
+ number2;
sum = number1
+ number2;
5. Draw applet
contents
5.1 Draw a rectangle
5.2 Draw the results
// draw rectangle starting from (15, 10) that is 270
// pixels wide and 20 pixels tall
g.drawRect( 15, 10, 270, 20 );
<html>
<applet
code="AdditionApplet.class"
width=300
height=50>
// draw
results as a String at (25,
25)
</applet>
g.drawString( "The sum is " + sum, 25, 25 );
</html>
} // end method paint
} // end class AdditionApplet
drawRect takes the upper left coordinate, width,
and height of the rectangle to draw.
HTML file
<html>
<applet code = "AdditionApplet.class" width = "300" height = "65">
</applet>
</html>
 2003 Prentice Hall, Inc.
All rights reserved.
19
Outline
Program Output
 2003 Prentice Hall, Inc.
All rights reserved.
20
Discussion (II):
Adding Floating-Point Numbers
8
9
public class AdditionApplet extends JApplet {
double sum;
// sum of values entered by user
– Field declaration
• Each object of class gets own copy of the field
• Declared in body of class, but not inside methods
– Variables declared in methods are local variables
– Can only be used in body of method
• Fields can be used anywhere in class
• Have default value (0.0 in this case)
– Primitive type double
• Used to store floating point (decimal) numbers
 2003 Prentice Hall, Inc. All rights reserved.
21
Discussion (III):
Adding Floating-Point Numbers
12
public void init()
– Method init
• Normally initializes fields and applet class
• Guaranteed to be first method called in applet
• First line must always appear as above
 2003 Prentice Hall, Inc. All rights reserved.
22
Discussion (IV):
Adding Floating-Point Numbers
14
15
16
17
18
String firstNumber;
String secondNumber;
// first string entered by user
// second string entered by user
double number1;
double number2;
// first number to add
// second number to add
• Two types of variables
– Primitive types (called variables)
• Contain one piece of data
– Reference variables (called references)
• Refer to objects (contain location in memory)
– Objects defined in a class definition
– Can contain multiple data and methods
• paint receives a reference called g to a Graphics object
• Reference used to call methods on the Graphics object
 2003 Prentice Hall, Inc. All rights reserved.
23
Discussion (V):
Adding Floating-Point Numbers
14
15
16
17
18
String firstNumber;
String secondNumber;
// first string entered by user
// second string entered by user
double number1;
double number2;
// first number to add
// second number to add
– Distinguishing references and variables
• If type is a class name, then reference
– String is a class
– firstNumber, secondNumber
• If type a primitive type, then variable
– double is a primitive type
– number1, number2
 2003 Prentice Hall, Inc. All rights reserved.
24
Discussion (VI):
Adding Floating-Point Numbers
33
sum = number1 + number2;
– Assignment statement
• sum is a field, can use anywhere in class
– Not defined in init but still used
 2003 Prentice Hall, Inc. All rights reserved.
25
Discussion (VII):
Adding Floating-Point Numbers
48
g.drawString( "The sum is " + sum, 25, 25 );
– Sends drawString message (calls method) to Graphics
object using reference g
• "The sum is" + sum - string concatenation
– sum converted to a string
• sum can be used, even though not defined in paint
– field, can be used anywhere in class
– Non-local variable
 2003 Prentice Hall, Inc. All rights reserved.