使用动态参数调用Java Applet

时间:2014-03-27 09:54:44

标签: java html applet

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

我使用的是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>

1 个答案:

答案 0 :(得分:1)

我可以尝试通过javascript以这种方式创建一个dinamic applet contanier:

 $('#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)一起使用。