How to Create Interactive Web Programs with Java | 2
How to Create Interactive Web Programs with Java
Drawing in An Applet Window
Text is displayed in an applet window by using the drawString()
method of the
Graphics2D
class, which draws text in a graphical user interface component.
The drawString()
method is similar in function to the System.out.println()
method that displays information to the system's standard output device.
Before you can use the drawString()
method, you must have a Graphics
or
Graphics2D
object that represents the applet window.
The paint()
method of all applets includes a Graphics
object as its only argument,
which can be cast to a Graphics2D
object:
Graphics2D screen2D = (Graphics2D)screen;
When you have created a Graphics2D
object like this, you can call its
drawString()
method to display text on the area represented by the object.
The following three arguments are sent to drawString()
:
|
The (x,y) coordinate system in an applet is used with several methods. It begins with
the (0,0) point in the upper-left corner of the applet window. Figure 17.1 shows how
the (x,y) coordinate system works in conjunction with the statement on Line 12 of
SalutonApplet.java
.
Testing the SalutonApplet
Program
Although you have compiled the SalutonApplet
program into a class file, you cannot
run it using a Java interpreter such as java
. If you do, you'll get an error
message looking like this:
Exception in thread "main" java.lang.NoSuchMethodError: main
The error occurs because a Java interpreter runs applications by calling its main()
method. Applets don't include this method. Instead, to run an applet, you need to
create a web page that loads the applet. To create a web page, open up a new file
on your word processor and call it SalutonApplet.html
. Enter Listing 17.2 and then
save the file.
All applets you write can be tested with the appletviewer
tool that comes with the
Java Development Kit. You can see the output of the SalutonApplet
applet by
typing the following:
appletviewer SalutonApplet.html
One thing to note about appletviewer
is that it only runs the applets that are
included in a web page, and does not handle any of the other elements such as text
and images.
Applets can also be loaded by web browsers, if they are equipped with the Java Plug-in. To attempt this at a command line, type the following command:
SalutonApplet.html
You can also choose File, Open from the browser's menu to find and open the page.
Figure 17.2 shows a screen capture of SalutonApplet
loaded in Mozilla Firefox.
If you can't get this applet to run in Firefox or another web browser, the most likely reason is that the browser needs the Java Plug-in.
The Java Plug-in
Though popular web browsers began including their own Java interpreters with the first release of the language in the mid-'90s, these interpreters failed to keep current.
To make it possible for Java 2 applets to run in current browsers, Sun Microsystems offers the Java Plug-in, a substitute for a browser's built-in interpreter that supports the most up-to-date version of the language.
A plug-in is a program that works in conjunction with a web browser to expand its functionality. Plug-ins handle a type of data that the browser normally could not handle. Apple offers a plug-in to display QuickTime movies, Macromedia distributes a plug-in to run Flash animation files, and many other kinds of special content are supported in this manner.
If you installed the Java Development Kit, you were given a chance to install the Java Plug-in at the same time.
The Java Plug-in runs Java applets in place of the web browser's Java interpreter. Once the Java Plug-in is installed, all future Java 2 applets will run automatically if they specify that the Plug-in should be used to run them.
The plug-in is part of the Java Runtime Environment, which can be downloaded at no cost from Sun's Java site at the address https://java.com.
Sending Parameters from a Web Page
Now that you have had some experience writing computer programs, you might be feeling one of the strongest emotions of the programmer: compiler angst. Even though it takes no more than 15 seconds to compile most programs, that time can seem interminable when you're debugging a program. Write, save, compile, AarghÂan error! Write, save, compile, Aargh! Write, save, compile, Aargh! As this vicious cycle repeats itself, it's easy to become world-weary as a program is compiled and recompiled.
One of the driving forces behind parameter use in Java applets is the fear and loathing of compilation. Parameters enable you to change elements of an applet without editing or recompiling anything. They also make the program more useful.
Parameters are stored as part of the web page that contains an applet. They are created
using the HTML tag param and its two attributes: name
and value
. You can
have more than one param tag with an applet, but all of them must be between the
opening <applet> tag and the closing </applet>
tag, which also support parameters).
The following is an applet tag that includes several parameters:
<applet code=”ScrollingHeadline.class” height=”50” width=”400”>
<param name=”headline1” value=”Dewey defeats Truman”>
<param name=”headline2” value=”Stix nix hix pix”>
<param name=”headline3” value=”Man bites dog”>
</applet>
This example could be used to send news headlines to an applet that scrolls them across the screen. Because news changes all the time, the only way to create a program of this kind is with parameters.
You use the name
attribute to give the parameter a name. This attribute is comparable
to giving a variable a name. The value
attribute gives the named parameter
a value.
Receiving Parameters in the Applet
You have to do something in your Java program to retrieve the parameters on the
web page or they will be ignored. The getParameter()
method of the JApplet
class
retrieves a parameter from a param
tag on a web page. The parameter name,
which is specified with the name attribute on the page, is used as an argument to
getParameter()
. The following is an example of getParameter()
in action:
String display1 = getParameter("headline1");
The getParameter()
method returns all parameters as strings, so you have to convert
them to other types as needed. If you want to use a parameter as an integer,
you could use statements such as the following:
int speed;
String speedParam = getParameter(“speed”);
if (speedParam != null) {
speed = Integer.parseInt(speedParam);
}
This example sets the speed variable by using the speedParam
string. You have
to test for null strings before setting speed because the parseInt()
method
cannot work with a null string. When you try to retrieve a parameter with
getParameter()
that was not included on a web page with the param
tag, it will be
sent as null
, which is the value of an empty string.
Workshop: Handling Parameters in an Applet
The next project you'll undertake has little practical value, except perhaps as a
taunting device. The ShowWeight
applet takes a person's weight and displays it
under several different units. The applet takes two parameters: a weight in pounds,
and the name of the person who weighs that amount. The weight is used to figure
out the person's weight in ounces, kilograms, and metric tons, all of which are displayed.
Create a new file with your word processor and give it the name ShowWeight.java
.
Enter Listing 17.3 into the file. Then save and compile the file.
The init()
method is where the two parameters are loaded into the applet. Because
they come from the web page as strings, they must be converted into the form you
need: a floating-point number for the lbs variable, and a string for name
.
Converting a string to a floating-point number requires two steps: converting the
string to a Float
object and then converting that object to a variable of the type
float
.
Lines 20Â22 are used to convert the lbs variable into different units of measure.
Each of these statements has (float
) in front of the conversion equation. This is
used to cast the result of the equation into a floating-point number.
The paint()
method of the applet uses the drawString()
method of the
Graphics2D
class to display a line of text onscreen. The paint()
method has three
arguments: the text to display, and the x and y positions where the text should be
shown.
Before you can test the ShowWeight
applet, you need to create a web page that contains
the applet. Open up a new file on your word processor and name it
ShowWeight.html.
Enter Listing 17.4 and save it when you're done.
Use a web browser equipped with the Java Plug-in to see the ShowWeight
applet.
This demonstration uses Konishiki as its example because the American-born sumo
wrestling champion weighs in at more than 605 pounds, making him the largest of
these immodest, bikini-wearing behemoths. You can substitute anyone whose weight
is either exemplary or well-known. Figure 17.3 shows an example of output from
the applet. As you can see, Konishiki's workout regimen doesn't include a lot of fatfree
SnackWell's Devil's Food Cakes.
To make the applet display a different name along with a different value for the
weight
parameter, all you have to change is the ShowWeight.html file
. The applet
itself will continue to work correctly.
Created: March 27, 2003
Revised: February 13, 2006
URL: https://webreference.com/programming/java_24/1