DOC-04-04 在程序中添加WebView组件

本章介绍了WebViewSample程序并说明了如何完成在JavaFX程序中添加WebView组件的任务。

WebViewSample程序创建了Browser类,该类封装了WebView对象和有多种UI控件的工具栏。程序中的WebViewSample类创建了scene并在其中添加了Browser对象。

4.1 创建内嵌式浏览器

例4-1展示了如何在程序的scene中添加WebView组件。

例4-1 使用WebView和WebEngine类创建Browser

在这段代码中,网页引擎加载了一个指向Oracle公司网站的URL。使用getChildren和add方法将包含网页引擎的WebView对象添加到程序中。

将上面代码片段的编译、运行结果如图4-1所示。

图4-1 程序中的WebView

4_4_1 webview-add

4.2 创建程序工具栏

添加一个包含4个超链接(Hyperlink)对象的工具栏以在不同的Oracle web资源间进行切换。学习一下例4-2中修改过的Browser类代码。程序中添加了各种不同web资源的URL,包括Oracle产品、博客、Java文档和合作伙伴网络。同样,该代码中也创建了工具栏并在其中添加了超链接。

例4-2 创建工具栏

上面的代码用了for循环来创建超链接。setOnAction方法定义了超链接的行为。当用户点击链接时,相应的URL的值会传到webEngine的load方法中。修改后的程序编译并运行结果如图4-2所示。

图4-2 有导航栏的内嵌浏览器

4_4_2 webview-partner

打赏一下
支付宝
微信
除非注明,博客文章均为原创,转载请标明文章地址
本文地址: http://www.javafxchina.net/blog/2015/07/html_webview_2/
百度已收录
  1. Win 10操作系统,Webview 一直是空白区,不能加载网页,请问有碰到这种情况和对策么?

    • 试了一下没有问题,不确定你遇到了什么问题。你可以尝试看一下加载的状态:
      webEngine.getLoadWorker().stateProperty().addListener(new ChangeListener() {
      @Override
      public void changed(ObservableValue observable, Worker.State oldValue, Worker.State newValue) {
      System.out.println(newValue);
      }
      });

  2. 试了下,在家wifi环境加载网页就是空白,在公司的有线网络中就能加载正常的网页。估计是网关的问题,还不确定,还得再试试。