Passing Parameters to Applets
As just
discussed, the APPLET tag allows you to pass parameters to your applet. To
retrieve a parameter, use the getParameter(
) method. It returns the value of the specified parameter in the form of a String object. Thus, for numeric and boolean values, you will need to
convert their string representations into their internal formats. Here is an
example that demonstrates passing parameters:
// Use Parameters
import java.awt.*; import
java.applet.*; /*
<applet
code="ParamDemo" width=300 height=80> <param name=fontName
value=Courier>
<param name=fontSize
value=14> <param name=leading value=2>
<param name=accountEnabled
value=true> </applet>
*/
public class ParamDemo
extends Applet { String fontName;
int fontSize; float leading;
boolean active;
// Initialize the string to
be displayed.
public void start() {
String param;
fontName =
getParameter("fontName"); if(fontName == null)
fontName = "Not
Found";
param =
getParameter("fontSize"); try {
if(param != null)
fontSize =
Integer.parseInt(param); else
fontSize = 0;
} catch(NumberFormatException
e) { fontSize = -1;
}
param =
getParameter("leading"); try {
if(param != null)
leading =
Float.valueOf(param).floatValue(); else
leading = 0;
} catch(NumberFormatException
e) { leading = -1;
}
param =
getParameter("accountEnabled"); if(param != null)
active =
Boolean.valueOf(param).booleanValue();
}
// Display parameters.
public void paint(Graphics g)
{
g.drawString("Font name:
" + fontName, 0, 10);
g.drawString("Font size:
" + fontSize, 0, 26);
g.drawString("Leading:
" + leading, 0, 42);
g.drawString("Account
Active: " + active, 0, 58);
}
}
Sample
output from this program is shown here:
As the
program shows, you should test the return values from getParameter( ). If a
parameter isn’t available, getParameter( ) will return null. Also, conversions
to numeric types must be attempted in a try statement that catches
NumberFormatException. Uncaught exceptions should never occur within an applet.
Improving the Banner Applet
It is
possible to use a parameter to enhance the banner applet shown earlier. In the
previous version, the message being scrolled was hard-coded into the applet.
However, passing the message as a parameter allows the banner applet to display
a different message each time it is executed. This improved version is shown
here. Notice that the APPLET tag at the top of the file now specifies a
parameter called message that is
linked to a quoted string.
// A parameterized banner
import java.awt.*; import
java.applet.*;
/*
<applet
code="ParamBanner" width=300 height=50> <param name=message
value="Java makes the Web move!"> </applet>
*/
public class ParamBanner
extends Applet implements Runnable { String msg;
Thread t = null; int state;
volatile boolean stopFlag;
//Set colors and initialize thread.
public void init() {
setBackground(Color.cyan);
setForeground(Color.red);
}
//Start thread
public void start() {
msg =
getParameter("message");
if(msg == null) msg =
"Message not found."; msg = " " + msg;
t = new Thread(this);
stopFlag = false; t.start();
}
// Entry point for the thread
that runs the banner.
public void run() {
// Redisplay banner
for( ; ; ) {
try { repaint();
Thread.sleep(250);
if(stopFlag)
break;
} catch(InterruptedException
e) {}
}
}
Pause the banner. public void stop() {
stopFlag = true; t = null;
}
//Display the banner.
public void paint(Graphics g)
{ char ch;
ch = msg.charAt(0);
msg = msg.substring(1,
msg.length()); msg += ch;
g.drawString(msg, 50, 30);
}
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2024 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.