【问题标题】:Invoking Java Applet with dynamic parameters使用动态参数调用 Java Applet
【发布时间】:2014-03-27 19:05:55
【问题描述】:

这是场景。用户在 html 页面中使用一定数量的参数填写表单,然后我需要使用这些特定参数调用我的小程序,可能在同一页面内。执行此传递的最简单方法是什么?

我正在使用 runApplet 功能,但它不起作用。 JS 控制台和 Java 控制台中没有消息。

<html>
<head>
<title>Compila i dati</title>
</head>
<body>
<script src=
  "http://www.java.com/js/deployJava.js"></script>
<script>
    function runApplet(){
        var attributes = { id:'anID', code:'Test',  width:1, height:1, codebase: '.'} ;
        var parameters = {width:'100', height:'100', code:'Test', archive: 'applet.jar, xyz.jar, abc.jar', 
        posX: document.forms["form1"]["posX"].value , posY: document.forms["form1"]["posY"].value , heightSign: '300' , widthSign: '600' , 
        PDFUrl: 'http://anurl' , 
        type:'application/x-java-applet' , scriptable:'false' } ;
        deployJava.runApplet(attributes, parameters, 1.6);
    }
</script>


<form name = "form1" onsubmit="runApplet()">
    <div>
        <label for="name">Nome:</label>
        <input type="text" name="nome" />
    </div>
    <div>
        <label for="mail">Cognome:</label>
        <input type="text" name="cognome" />
    </div>
    <div>
        <label for="msg">X:</label>
        <input type="text" name="posX" />
    </div>
    <div>
        <label for="msg">Y:</label>
        <input type="text" name="posY" />
    </div>

    <div class="button">
        <button type="submit">Invia</button>
    </div>
</form>

</body>

【问题讨论】:

    标签: java html applet


    【解决方案1】:

    我可以尝试以这种方式通过 javascript 创建一个动态小程序容器:

     $('#idappletv').empty();
           $('#idappletv').hide();
            var _xmhlcode = "  <script>  function javafxEmbed() {" +
            "dtjava.embed( " +
            "{" +
            "    id: 'myBrApplet'," +
            "    url : 'pages/applet/myApplet.jnlp'," +
            "    placeholder : 'javafx-app-placeholder'," +
            "    width : 890   ," +
            "    height : 200," +
            "    jnlp_content : 'bmFtZT0iQXBwbGV0RnhCcm93c2VyIiAvPg0KICA8dXBkYXRlIGNoZWNrPSJhbHdheXMiLz4NCjwvam5scD4NC=='" +
            ", params: {param1:'" + param1 + "',param2:'" + param2 + "'}" +
            "}," +
            "{" +
            "    javafx : '2.2+'" +
            "}," +
            "{}" +
            ");" +
            "}" +
            "dtjava.addOnloadCallback(javafxEmbed); </" + "script> ";
    
            $('#idappletv').append("<div id='javafx-app-placeholder'></div>");
            $('#idappletv').append(_xmhlcode);
            dtjava.addOnloadCallback(javafxEmbed);
            $('#idappletv').show();
    

    然后,当小程序启动时,您可以使用以下方法读取参数:

     @Override
        public void start(Stage primaryStage) {
            Parameters params = getParameters();
            String param1 = params.getNamed().get("param1");
            String param2 = params.getNamed().get("param2");
    

    您可以从您的 html 页面中读取参数“param1 和 param2”。

    它应该是有效的。 我将 JavaFX 与 java-webstart (http://docs.oracle.com/javafx/2/deployment/deploy_swing_apps.htm) 一起使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-06
      • 2023-03-06
      • 2018-10-11
      • 2010-10-15
      相关资源
      最近更新 更多