在 JavaFX 中使用 Fuzio

本页面介绍如何配置 Gradle 项目,以便在 JavaFX GUI 工具包中使用 Fuzio。

前提条件 

获取项目 

本指南中描述的示例项目可在 Gitee 独立仓库中找到。

配置 Gradle 项目 

仓库 

Fuzio 通过 Jiku 托管的 Maven 仓库进行分发。请将以下仓库引用添加到你的 build.gradle.kts 中:

repositories {
   // 包含 Fuzio 二进制文件的仓库。
   maven("https://jiku.mycloudrepo.io/public/repositories/releases")
}

版本变量 

我们建议为项目中使用的 Fuzio 版本定义一个变量。以下各节将引用该变量。

val fuzioVersion = "2026.1.0"

平台 

若要添加可在 Windows、macOS 和 Linux 上运行的 Fuzio 库,请添加以下代码:

dependencies {
   implementation "tech.fuzio:fuzio-cross-platform:$fuzioVersion"
}

JavaFX 

若要在应用的 JavaFX GUI 中使用 Fuzio,请同时添加相应的 Fuzio 依赖:

dependencies {
   implementation("tech.fuzio:fuzio-javafx:$fuzioVersion")
}

为实现无缝的 JavaFX 集成,我们推荐使用 JavaFX gradle 插件:

plugins {
    id("org.openjfx.javafxplugin") version "0.1.0"
}

Kotlin DSL 

如果你使用 Kotlin 进行开发,我们建议添加 Fuzio Kotlin DSL 以获得最佳体验。

dependencies {
   implementation("tech.fuzio:fuzio-kotlin:$fuzioVersion")
}

Gradle 构建文件 

最终,你的 build.gradle.kts 应如下所示:


plugins {
    java
    application
    id("org.openjfx.javafxplugin") version "0.1.0"
    kotlin("jvm") version "2.0.0"
}

val fuzioVersion = "2026.1.0"

repositories {
    mavenCentral()
    maven("https://jiku.mycloudrepo.io/public/repositories/releases")
}

dependencies {
    implementation("tech.fuzio:fuzio-cross-platform:${fuzioVersion}")
    implementation("tech.fuzio:fuzio-javafx:${fuzioVersion}")
    implementation(kotlin("stdlib-jdk8"))
    implementation("tech.fuzio:fuzio-kotlin:${fuzioVersion}")
}

javafx {
    version = "21.0.5"
    modules("javafx.controls")
}

kotlin {
    jvmToolchain(17)
}

application {
    // 定义应用程序的主类。
    mainClass.set("JavaFxApp")

    // 或者,你也可以运行 Kotlin 示例,如下:
    // mainClass.set("KotlinJavaFxApp")
}

tasks.withType<JavaExec> {
    // 将命令行中的所有 Java 系统属性分配给 JavaExec 任务。
    systemProperties(System.getProperties().mapKeys { it.key as String })
}

在 JavaFX 中嵌入 Fuzio 

项目中有两个 JavaFX 应用实现:Java 和 Kotlin。

两种实现类似,都演示了如何:

  1. 初始化 Engine(Chromium)实例。
  2. 创建 Browser 实例。
  3. 加载所需网页。
  4. 将 Web 视图组件嵌入 JavaFX 场景以显示已加载的网页:
Java
Kotlin
// JavaFxApp.java:

import static tech.fuzio.engine.RenderingMode.HARDWARE_ACCELERATED;

import tech.fuzio.engine.Engine;
import tech.fuzio.view.javafx.BrowserView;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

public final class JavaFxApp extends Application {

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

        // 创建 Browser 实例并加载所需网页。
        var browser = engine.newBrowser();
        browser.navigation().loadUrl("https://html5test.jiku.co");

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

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

import tech.fuzio.dsl.Engine
import tech.fuzio.engine.RenderingMode.HARDWARE_ACCELERATED
import tech.fuzio.view.javafx.BrowserView
import javafx.application.Application
import javafx.scene.Scene
import javafx.scene.layout.BorderPane
import javafx.stage.Stage

class KotlinJavaFxApp : Application() {
    override fun start(primaryStage: Stage) {
        // 初始化 Chromium。
        val engine = Engine(HARDWARE_ACCELERATED)

        // 创建 Browser 实例并加载所需网页。
        val browser = engine.newBrowser()
        browser.navigation().loadUrl("https://html5test.jiku.co")

        // 创建并嵌入 JavaFX BrowserView 组件以显示 Web 内容。
        val view = BrowserView.newInstance(browser)
        
        val scene = Scene(BorderPane(view), 1280.0, 800.0)
        primaryStage.title = "Fuzio JavaFX"
        primaryStage.scene = scene
        primaryStage.show()

        // 关闭 Chromium 并释放已分配的资源。
        primaryStage.setOnCloseRequest { engine.close() }
    }

    fun run() {
        launch()
    }
}

fun main() {
    KotlinApp().run()
}

运行 JavaFX 应用程序 

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

./gradlew run -Dfuzio.license.key=<your_license_key>

启动后,你将看到一个包含 BrowserView 组件的 JavaFX 应用,其中显示 https://html5test.jiku.co:

JavaFX 应用中的 BrowserView

下一步 

微信咨询

即库客服

微信公众号二维码

技术客服

微信公众号二维码