javafx之webEngine超详细解析

JavaFX WebEngine

JavaFX教程 - JavaFX WebEngine

JavaFX 提供与 HTML5 内容互操作的功能。

JavaFX 中的底层网页渲染引擎是名为 WebKit 的流行的开源API。此 API 用于 Apple 的 Safari 浏览器,Amazon 的 Kindle 设备,并在 Google 的 Chrome 浏览器中使用。

嵌入式浏览器使您能够在 JavaFX 应用程序中执行以下任务:

  • 从本地或远程 URL 呈现 HTML
  • 获取网络历史记录
  • 执行 JavaScript命令
  • JavaScript 调用 JavaFX
  • 管理网络弹出窗口

WebEngine

JavaFX 提供了一个能够加载 HTML5 内容的非 GUI 组件,称为 WebEngine API(javafx.scene.web.WebEngine)。

这个 API 基本上是一个 WebEngine类的对象实例,用于加载包含 HTML5 内容的文件。

要加载的 HTML5 文件可以位于本地文件系统,Web 服务器或 JAR 文件中。

使用 Web 引擎对象加载文件时,将使用后台线程来加载 Web 内容,以便它不会阻止 JavaFX 应用程序线程。

从网址载入

我们可以通过使用 WebEngineload()方法从 URL加载 Web 内容。

WebEngine 使用后台线程,坚持基于事件的编程模型。

Web 引擎可以从远程 Web 服务器异步加载 Web 内容,并在内容加载完成时通知处理程序代码。

以下代码从后台工作线程中的远程 Web 服务器加载 HTML 内容。

要监视或确定工作线程是否已完成 javafx.beans.value.ChangeListener添加到 state 属性。

import javafx.application.Application;
import javafx.concurrent.Worker.State;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.web.WebEngine;
import javafx.stage.Stage;

public class Main extends Application {
  public static void main(String[] args) {
    Application.launch(args);
    
  }

  @Override
  public void start(Stage primaryStage) {
    WebEngine webEngine = new WebEngine();
    webEngine.getLoadWorker().stateProperty()
        .addListener((obs, oldValue, newValue) -> {
          if (newValue == State.SUCCEEDED) {
            System.out.println("finished loading");
          }
       
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值