在JavaWebStart应用程序中替换context.showDocument()

时间:2018-06-30 22:53:55

标签: java browser java-web-start jnlp

我正在将旧的旧版应用程序从浏览器小程序迁移到通过JNLP启动的基于JFrame的JWS应用程序。
在applet基本应用程序中,我使用context.showDocument()打开了任意大小的浏览器窗口,并配置为不显示条形(菜单栏,状态栏,滚动条)和不可调整大小(通过Javascript())。

但是现在这不起作用了。
我可以在JavaWebStart / JNLP应用程序中解决此问题吗?
我将需要打开一个HTML页面,并在一个没有普通栏的大小窗口中显示竞争内容。 现在,当我使用showDocument()表单JNLP basicServices时,我不能这样做(没有JavaScript)。

1 个答案:

答案 0 :(得分:2)

与普通的Java应用程序一样,通常应该可以在Javafx Web视图中预览html文件。但是,我不确定此操作所需的jnlp权限:

private void previewHtml(String url) {
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            JFrame fr = new JFrame();
            final JFXPanel fxPanel = new JFXPanel();
            fr.add(fxPanel);
            fr.setSize(1000, 600);
            fr.setVisible(true);

            Platform.runLater(new Runnable() {
                @Override
                public void run() {
                    final Group  rootGroup  =  new  Group();
                    final Scene scene = new Scene(rootGroup, 1000, 600, Color.WHITE);        
                    final WebView webView = WebViewBuilder.create().prefHeight(600).prefWidth(1000).build();
                    webView.getEngine().load(url);
                    rootGroup.getChildren().add(webView);
                    fxPanel.setScene(scene);
                    fxPanel.show();
                }
            });                
        }
    });

}


//You can add the following code to a button actionListener:

//prevew html from classpath:
previewHtml(getClass().getResource("/classpath-file.html").toExternalForm());

//prevew html from url:
previewHtml("https://stackoverflow.com/");