# 定义和使用 Applet 参数

> 原文： [https://docs.oracle.com/javase/tutorial/deployment/applet/param.html](https://docs.oracle.com/javase/tutorial/deployment/applet/param.html)

Java applet 的参数是应用程序的命令行参数。它们使用户能够自定义 applet 的操作。通过定义参数，您可以提高 applet 的灵活性，使 applet 在多种情况下工作，无需重新编码和重新编译。

## 指定 Applet 的输入参数

您可以在 applet 的 Java 网络启动协议（JNLP）文件或`&lt;applet&gt;`标记的`&lt;parameter&gt;`元素中指定 applet 的输入参数。通常最好在 applet 的 JNLP 文件中指定参数，以便即使 applet 部署在多个网页上也可以一致地提供参数。如果 applet 的参数因网页而异，则应在`&lt;applet&gt;`标签的`&lt;parameter&gt;`元素中指定参数。

如果您不熟悉 JNLP，请参阅 [Java 网络启动协议](../deploymentInDepth/jnlp.html)主题以获取更多信息。

考虑一个带有三个参数的 applet。 `paramStr`和`paramInt`参数在 applet 的 JNLP 文件 [``applettakesparams.jnlp``](examples/applet_AppletWithParameters/src/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>

```

`paramOutsideJNLPFile`参数在传递给 [``AppletPage.html``](examples/dist/applet_AppletWithParameters/AppletPage.html)中的 Deployment Toolkit 脚本的`runApplet`功能的`parameters`变量中指定。

```
<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="https://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.7');
    </script>

  </body>
</html>

```

有关`runApplet`功能的更多信息，请参见[部署小程序](../deploymentInDepth/runAppletFunction.html)。

## 检索 Applet 的输入参数

您可以使用`Applet`类的 [`getParameter`](https://docs.oracle.com/javase/8/docs/api/java/applet/Applet.html#getParameter-java.lang.String-) 方法检索 applet 的输入参数。 [``AppletTakesParams.java`` ](examples/applet_AppletWithParameters/src/AppletTakesParams.java)小程序检索并显示其所有输入参数（`paramStr`，`paramInt`和`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);
    }
}

```

接下来显示`AppletTakesParams`小程序。

<noscript>A browser with JavaScript enabled is required for this page to operate properly.</noscript>

* * *

**Note:**  If you don't see the applet running, you need to install at least the [Java SE Development Kit (JDK) 6 update 10](http://www.oracle.com/technetwork/java/javase/downloads/index.html) release.

* * *

* * *

**Note:**  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.

* * *

[下载 _Applet 的源代码 _](examplesIndex.html#AppletWithParameters)，参数示例进一步试验。