New version is available
JxBrowser 7 的支持将于 2025 年 10 月终止,届时将不再提供 Chromium 更新和关键修复。 我们建议您升级至 JxBrowser 8,以享受新功能和改进带来的更多优势。 如果您有任何疑问或在升级过程中需要帮助,欢迎随时联系我们
List icon 目录

JxBrowser 在 JavaFX 中的使用

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

前提条件

获取项目

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

git clone https://github.com/TeamDev-IP/JxBrowser-QuickStart-Maven-JavaFX.git
git checkout v7
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>7.43.2</jxbrowser.version>
       <maven.compiler.source>8</maven.compiler.source>
       <maven.compiler.target>8</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>
    </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.browser.Browser;
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 {

    public static void main(String[] args) {
        launch(args); // 启动 JavaFX 应用程序。
    }

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

        Browser browser = engine.newBrowser();

        // 加载所需网页。
        browser.navigation().loadUrl("https://html5test.teamdev.com");

        // 创建并嵌入 JavaFX BrowserView 组件以显示 Web 内容。
        BrowserView view = BrowserView.newInstance(browser);

        Scene scene = new Scene(new BorderPane(view), 1280, 800);
        primaryStage.setTitle("JxBrowser JavaFX");
        primaryStage.setScene(scene);
        primaryStage.show();

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

了解更多