JavaFX(2.2)将字符串从内存加载到WebView

昌娜

我必须显示一些JavaFX(2.2)WebView的价值。但是价值必须查询表格数据库。该值可能包含对外部网页和内部本地文件的某些引用。如何使用户能够使用WebView打开这些网页和本地文件。谢谢。

  WebView wv = new WebView();
    wv.getEngine().setCreatePopupHandler(new Callback<PopupFeatures, WebEngine>() {

        @Override
        public WebEngine call(PopupFeatures p) {
            Stage stage = new Stage(StageStyle.UTILITY);
            WebView wv2 = new WebView();
            stage.setScene(new Scene(wv2));
            stage.show();
            return wv2.getEngine();
        }
    });

    String value = "<a href='http://stackoverflow.com' target='_blank'>Open a URL</a>" +
                      " <a href=\"file:///C:\\Users\\Dev\\debug.log\">Open a File</a> ";

    wv.getEngine().loadContent(value);

    StackPane root = new StackPane();
    root.getChildren().add(wv);

    Scene scene = new Scene(root, 300, 250);

    primaryStage.setTitle("Hello World!");
    primaryStage.setScene(scene);
    primaryStage.show(); 
昌娜

我已经按照以下方式解决了这个问题。为了使此启用,下面的stackoverflow发布非常有帮助。谢谢。

    // Set HostService inherit from Application class 
    ServiceUtil.hostServices = getHostServices();

    // HTML code
    final String htmlCode = "<a href='http://stackoverflow.com ' target='_blank'>Open a Web URL</a>" +
                            "<a href=\"file:///C:\\Users\\Dev\\debug.log\">Open a Local File</a> ";

    // Create a WebView 
    final WebView webView = new WebView();        

    webView.getEngine().loadContent(htmlCode);

    webView.getEngine().locationProperty().addListener(new ChangeListener<String>() {
         @Override
         public void changed(ObservableValue<? extends String> observable, final String oldValue, final String newValue) {

                      if((newValue != null) && (!newValue.trim().equals(""))) {

                          Platform.runLater(new Runnable() {

                              @Override
                              public void run() {

                                  // Reset content as HTML codes
                                  // NB: This will make stop opening URL in WebView
                                  webView.getEngine().loadContent(htmlCode);

                                  // Direct URL to local browser
                                  ServiceUtil.hostServices.showDocument(newValue);
                              }
                          });
                      }
                  }
     });

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

WebView2控件未加载HTML字符串

来自分类Dev

尝试将int从文件加载到2d数组中,并收到“输入字符串格式不正确”错误

来自分类Dev

将App Inventor 2 Webview字符串转换为Javascript:定义数组

来自分类Dev

JavaFX2 WebView和内存中图像

来自分类Dev

JavaFX2 WebView和内存中图像

来自分类Dev

MaxMind:将GeoIP2 mmdb加载到内存中以快速读取

来自分类Dev

Swift 2中的内存字符串压缩

来自分类Dev

从OS X字符串将HTML加载到Webview中

来自分类Dev

从内存或python opencv中的字符串将模型状态加载到FaceRecognizer中

来自分类Dev

从内存或python opencv中的字符串将模型状态加载到FaceRecognizer中

来自分类Dev

JavaFx2或ScalaFx + Akka

来自分类Dev

JavaFX 2嵌入YouTube视频

来自分类Dev

JavaFX 2用户空闲检测

来自分类Dev

比较2个日期javafx

来自分类Dev

JavaFX 2嵌入YouTube视频

来自分类Dev

移动刻度标签JavaFx 2

来自分类Dev

使用Delphi XE2将oracle blob加载到内存中,并使用默认应用程序打开

来自分类Dev

将24位BGR图像从内存加载到ID2D1Bitmap1的最佳方法

来自分类Dev

将图像加载到ImageView JavaFX

来自分类Dev

[C]-将字符串拆分为2个字符串

来自分类Dev

如何将2D字符串插入字符串

来自分类Dev

如何使用RegEx将字符串分成2个字符串?

来自分类Dev

将字符串复制到2D字符串数组中

来自分类Dev

如何将 2 点符号字符串合并到 GraphQL 查询字符串

来自分类Dev

如何使JavaFX WebView继续使用JavaFX 14 / HTTP2 / JDK-8211308使用自签名证书加载页面

来自分类Dev

将字符串转换为Datetime2

来自分类Dev

Angular2将字符串解析为html

来自分类Dev

分组/将字符串分成2组

来自分类Dev

将字符串分成2个字母

Related 相关文章

热门标签

归档