List icon 目录

JxBrowser 在 JavaFX 中的使用

在 JavaFX Maven 项目中使用 JxBrowser 的最简单方式是克隆 GitHub 仓库,其中所有内容都已配置完毕,可以直接使用。

前提条件

获取项目

使用以下命令克隆 GitHub 仓库:

git clone https://github.com/TeamDev-IP/JxBrowser-QuickStart-Maven-JavaFX.git
cd JxBrowser-QuickStart-Maven-JavaFX

运行 JavaFX 应用程序

使用以下命令构建并运行 JavaFX 应用程序:

mvn clean compile exec:java -Djxbrowser.license.key=<your_license_key>

启动后,您将看到一个包含 BrowserView 组件的 JavaFX 应用程序,展示的网页为 https://html5test.teamdev.com

JavaFX 应用中的 BrowserView

项目概述

本节将介绍如何配置 Maven 项目以包含 JxBrowser,以及如何将 JxBrowser BrowserView 组件嵌入到 JavaFX 场景中以显示已加载的网页内容。

配置 Maven 项目

Maven 项目配置为使用 JxBrowser Maven 存储库来获取必要的 JxBrowser 依赖项,获取所有平台的 Chromium 二进制文件,并添加 JavaFX UI 工具包集成。

以下是 pom.xml 文件的配置方式:

XML
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.teamdev.jxbrowser.quickstart.maven</groupId>
    <artifactId>javafx</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <!-- 使用最新稳定的 JxBrowser 版本。 -->
       <jxbrowser.version>8.3.0</jxbrowser.version>
       
       <maven.compiler.source>17</maven.compiler.source>
       <maven.compiler.target>17</maven.compiler.target>
       
       <!-- 定义 Java 应用程序的主类。 -->
       <exec.mainClass>com.teamdev.jxbrowser.quickstart.maven.javafx.App</exec.mainClass>
    </properties>
    
    <repositories>
        <!-- 为 JxBrowser 配置 Maven 仓库。 -->
        <repository>
            <id>com.teamdev</id>
            <url>https://europe-maven.pkg.dev/jxbrowser/releases</url>
        </repository>
    </repositories>

    <dependencies>
        <!-- 获取所有平台的 Chromium 二进制文件。 -->
        <dependency>
            <groupId>com.teamdev.jxbrowser</groupId>
            <artifactId>jxbrowser-cross-platform</artifactId>
            <version>${jxbrowser.version}</version>
            <type>pom</type>
        </dependency>

        <!-- 添加 JavaFX UI 工具包集成的依赖项。 -->
        <dependency>
            <groupId>com.teamdev.jxbrowser</groupId>
            <artifactId>jxbrowser-javafx</artifactId>
            <version>${jxbrowser.version}</version>
        </dependency>
        <!-- 允许 JavaFX 集成。 -->
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>17</version>
        </dependency>
    </dependencies>

</project>

将 JxBrowser 嵌入 JavaFX

在 JavaFX 应用程序的源代码中,您可以看到如何:

  1. 初始化 Engine(Chromium 实例)。
  2. 创建 Browser 实例。
  3. 加载所需的网页。
  4. BrowserView 组件嵌入到 JavaFX 场景中以显示已加载的网页。
Java
import static com.teamdev.jxbrowser.engine.RenderingMode.HARDWARE_ACCELERATED;

import com.teamdev.jxbrowser.engine.Engine;
import com.teamdev.jxbrowser.view.javafx.BrowserView;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

public final class App extends Application {

    @Override
    public void start(Stage primaryStage) {
        // 初始化 Chromium。
        var engine = Engine.newInstance(HARDWARE_ACCELERATED);

        // 创建浏览器实例并加载所需的网页。
        var browser = engine.newBrowser();
        browser.navigation().loadUrl("https://html5test.teamdev.com");

        // 创建并嵌入 JavaFX BrowserView 组件以显示 Web 内容。
        var view = BrowserView.newInstance(browser);
        
        var scene = new Scene(new BorderPane(view), 1280, 800);
        primaryStage.setTitle("JxBrowser JavaFX");
        primaryStage.setScene(scene);
        primaryStage.show();

        // 关闭 Chromium 并释放分配的资源。
        primaryStage.setOnCloseRequest(event -> engine.close());
    }
}

了解更多