Parameters are to Java applets what command-line arguments are to applications. They enable the user to customize the applet's operation. By defining parameters, you can increase your applet's flexibility, making your applet work in multiple situations without recoding and recompiling it.
You can specify an applet's input parameters in the applet's Java Network Launch Protocol (JNLP) file or in the <parameter>
element of the <applet>
tag. It is usually better to specify the parameters in the applet's JNLP file so that the parameters can be supplied consistently even if the applet is deployed on multiple web pages. If the applet's parameters will vary by web page, then you should specify the parameters in the <parameter>
element of the <applet>
tag.
If you are unfamiliar with JNLP, see the Java Network Launch Protocol topic for more information.
Consider an applet that takes three parameters. The paramStr
and paramInt
parameters are specified in the applet's JNLP file,
.applettakesparams.jnlp
<?xml version="1.0" encoding="UTF-8"?> <jnlp spec="1.0+" codebase="" href=""> ... <applet-desc name="Applet Takes Params" main-class="AppletTakesParams" width="800" height="50"> <param name="paramStr" value="someString"/> <param name="paramInt" value="22"/> </applet-desc> ... </jnlp>
The paramOutsideJNLPFile
parameter is specified in the parameters
variable passed to the Deployment Toolkit script's runApplet
function in
.AppletPage.html
<html> <head> <title>Applet Takes Params</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> </head> <body> <h1>Applet Takes Params</h1> <script src="http://www.java.com/js/deployJava.js"></script> <script> var attributes = { code:'AppletTakesParams.class', archive:'applet_AppletWithParameters.jar', width:800, height:50} ; var parameters = {jnlp_href: 'applettakesparams.jnlp', paramOutsideJNLPFile: 'fooOutsideJNLP'} ; deployJava.runApplet(attributes, parameters, '1.4'); </script> </body> </html>
See
Deploying an Applet for more information about the runApplet
function.
You can retrieve the applet's input parameters by using the
getParameter
method of the Applet
class. The
applet retrieves and displays all its input parameters (AppletTakesParams.java
paramStr
, paramInt
, and paramOutsideJNLPFile
).
import javax.swing.JApplet; import javax.swing.SwingUtilities; import javax.swing.JLabel; public class AppletTakesParams extends JApplet { public void init() { final String inputStr = getParameter("paramStr"); final int inputInt = Integer.parseInt(getParameter("paramInt")); final String inputOutsideJNLPFile = getParameter("paramOutsideJNLPFile"); try { SwingUtilities.invokeAndWait(new Runnable() { public void run() { createGUI(inputStr, inputInt, inputOutsideJNLPFile); } }); } catch (Exception e) { System.err.println("createGUI didn't successfully complete"); } } private void createGUI(String inputStr, int inputInt, String inputOutsideJNLPFile) { String text = "Applet's parameters are -- inputStr: " + inputStr + ", inputInt: " + inputInt + ", paramOutsideJNLPFile: " + inputOutsideJNLPFile; JLabel lbl = new JLabel(text); add(lbl); } }
The AppletTakesParams
applet is shown next.
If you don't see the applet running, you need to install at least the Java SE Development Kit (JDK) 6 update 10 release.
If you don't see the example running, you might need to enable the JavaScript interpreter in your browser so that the Deployment Toolkit script can function properly.
Download source code for the Applet With Parameters example to experiment further.