Search code examples
javafx-2java-web-start

How to pass parameter in webstart/browser mode in Javafx2


I have read the material on how to do this but I'm stuck trying to figureout how to pass a parameter to my JavaFX2 application with in browser mode or webstart mode.
I've asked the question on OTN forums also here

So I imported ColorfulCircles project from the Ensemble into Netbeans. Then I modified the code and put in a small snippet to pull a parameter after init method, like so. I just get the parameter and set it as title for the stage.

                @Override public void start(Stage primaryStage) throws Exception {
                init(primaryStage);

                Parameters params = getParameters();
                String myTitle = params.getNamed().get("myTitle");
                primaryStage.setTitle(myTitle);

                primaryStage.show();
                play();
                }

I then did a clean and build in netbeans...all html, jar, jnlp etc was generated.

I then manually modified the HTML as shown below. But the title for the stage doesnt update/show, for either modes. What is missing here?

            <html><head>
              <SCRIPT src="./web-files/dtjava.js"></SCRIPT>
            <script>
                function launchApplication(jnlpfile) {
                dtjava.launch(            {
                    url : 'ColorfulCircles.jnlp',
                    jnlp_content : 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxqbmxwIHNwZWM9IjEuMCIgeG1sbnM6amZ4PSJodHRwOi8vamF2YWZ4LmNvbSIgaHJlZj0iQ29sb3JmdWxDaXJjbGVzLmpubHAiPg0KICA8aW5mb3JtYXRpb24DQogICAgPHRpdGxlPkNvbG9yZnVsQ2lyY2xlczwvdGl0bGUDQogICAgPHZlbmRvcj5kZW1vPC92ZW5kb3IDQogICAgPGRlc2NyaXB0aW9uPlNhbXBsZSBKYXZhRlggMi4wIGFwcGxpY2F0aW9uLjwvZGVzY3JpcHRpb24DQogICAgPG9mZmxpbmUtYWxsb3dlZC8DQogIDwvaW5mb3JtYXRpb24DQogIDxyZXNvdXJjZXMDQogICAgPGpmeDpqYXZhZngtcnVudGltZSB2ZXJzaW9uPSIyLjArIiBocmVmPSJodHRwOi8vamF2YWRsLnN1bi5jb20vd2ViYXBwcy9kb3dubG9hZC9HZXRGaWxlL2phdmFmeC1sYXRlc3Qvd2luZG93cy1pNTg2L2phdmFmeDIuam5scCIvPg0KICA8L3Jlc291cmNlcz4NCiAgPHJlc291cmNlcz4NCiAgICA8ajJzZSB2ZXJzaW9uPSIxLjYrIiBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2F1dG9kbC9qMnNlIi8DQogICAgPGphciBocmVmPSJDb2xvcmZ1bENpcmNsZXMuamFyIiBzaXplPSIxNzg3NSIgZG93bmxvYWQ9ImVhZ2VyIiAvPg0KICA8L3Jlc291cmNlcz4NCiAgPGFwcGxldC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0iY29tLmphdmFmeC5tYWluLk5vSmF2YUZYRmFsbGJhY2siICBuYW1lPSJDb2xvcmZ1bENpcmNsZXMiID4NCiAgICA8cGFyYW0gbmFtZT0icmVxdWlyZWRGWFZlcnNpb24iIHZhbHVlPSIyLjArIi8DQogIDwvYXBwbGV0Pg0KICA8amZ4OmphdmFmeC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0iQ29sb3JmdWxDaXJjbGVzU2FtcGxlIiAgbmFtZT0iQ29sb3JmdWxDaXJjbGVzIiAvPg0KICA8dXBkYXRlIGNoZWNrPSJiYWNrZ3JvdW5kIi8DQo8L2pubHADQo='
                    ,
                    params: {myTitle: "MyColorfulCircles"}
                    },
                    {
                    javafx : '2.0'
                    },
                    {}
                );
                return false;
                }
            </script>

            <script>
                function javafxEmbed() {
                dtjava.embed(
                    {
                    url : 'ColorfulCircles.jnlp',
                    placeholder : 'javafx-app-placeholder',
                    width : 800,
                    height : 600,
                    jnlp_content : 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxqbmxwIHNwZWM9IjEuMCIgeG1sbnM6amZ4PSJodHRwOi8vamF2YWZ4LmNvbSIgaHJlZj0iQ29sb3JmdWxDaXJjbGVzLmpubHAiPg0KICA8aW5mb3JtYXRpb24DQogICAgPHRpdGxlPkNvbG9yZnVsQ2lyY2xlczwvdGl0bGUDQogICAgPHZlbmRvcj5kZW1vPC92ZW5kb3IDQogICAgPGRlc2NyaXB0aW9uPlNhbXBsZSBKYXZhRlggMi4wIGFwcGxpY2F0aW9uLjwvZGVzY3JpcHRpb24DQogICAgPG9mZmxpbmUtYWxsb3dlZC8DQogIDwvaW5mb3JtYXRpb24DQogIDxyZXNvdXJjZXMDQogICAgPGpmeDpqYXZhZngtcnVudGltZSB2ZXJzaW9uPSIyLjArIiBocmVmPSJodHRwOi8vamF2YWRsLnN1bi5jb20vd2ViYXBwcy9kb3dubG9hZC9HZXRGaWxlL2phdmFmeC1sYXRlc3Qvd2luZG93cy1pNTg2L2phdmFmeDIuam5scCIvPg0KICA8L3Jlc291cmNlcz4NCiAgPHJlc291cmNlcz4NCiAgICA8ajJzZSB2ZXJzaW9uPSIxLjYrIiBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2F1dG9kbC9qMnNlIi8DQogICAgPGphciBocmVmPSJDb2xvcmZ1bENpcmNsZXMuamFyIiBzaXplPSIxNzg3NSIgZG93bmxvYWQ9ImVhZ2VyIiAvPg0KICA8L3Jlc291cmNlcz4NCiAgPGFwcGxldC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0iY29tLmphdmFmeC5tYWluLk5vSmF2YUZYRmFsbGJhY2siICBuYW1lPSJDb2xvcmZ1bENpcmNsZXMiID4NCiAgICA8cGFyYW0gbmFtZT0icmVxdWlyZWRGWFZlcnNpb24iIHZhbHVlPSIyLjArIi8DQogIDwvYXBwbGV0Pg0KICA8amZ4OmphdmFmeC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0iQ29sb3JmdWxDaXJjbGVzU2FtcGxlIiAgbmFtZT0iQ29sb3JmdWxDaXJjbGVzIiAvPg0KICA8dXBkYXRlIGNoZWNrPSJiYWNrZ3JvdW5kIi8DQo8L2pubHADQo='
                    ,
                    params: {myTitle: "MyColorfulCircles"}
                    },
                    {
                    javafx : '2.0'
                    },
                    {}
                );
                }
                <!-- Embed FX application into web page once page is loaded -->
                dtjava.addOnloadCallback(javafxEmbed);
            </script>

            </head><body>
            <h2>Test page for <b>ColorfulCircles</b></h2>
              <b>Webstart:</b> <a href='ColorfulCircles.jnlp' onclick="return launchApplication('ColorfulCircles.jnlp');">click to launch this app as webstart</a><br><hr><br>

              <!-- Applet will be inserted here -->
              <div id='javafx-app-placeholder'></div>
            </body></html>

Solution

  • That was fixed in JavaFX 2.2 you can try developers version here: http://www.oracle.com/technetwork/java/javafx/downloads/devpreview-1429449.html

    But make sure you regenerate your html/jnlp files using new ant-javafx.jar (or copy them from samples)