在 Swing 中使用 Fuzio

本页面介绍如何配置 Gradle 项目,以便在 Swing 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")
}

Swing 

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

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

Kotlin DSL 

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

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

总结 

最终,你的 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-swing:${fuzioVersion}")
    implementation(kotlin("stdlib-jdk8"))
    implementation("tech.fuzio:fuzio-kotlin:${fuzioVersion}")
}

kotlin {
    jvmToolchain(17)
}

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

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

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

将 Fuzio 嵌入 Swing 

这里提供了两个 Swing 应用示例实现(Java 和 Kotlin)。

两种实现方式相似,演示了如何:

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

import static tech.fuzio.engine.RenderingMode.HARDWARE_ACCELERATED;
import static javax.swing.SwingUtilities.invokeLater;

import tech.fuzio.engine.Engine;
import tech.fuzio.view.swing.BrowserView;

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;

public final class SwingApp {

    public static void main(String[] args) {
        // 初始化 Chromium。
        var engine = Engine.newInstance(HARDWARE_ACCELERATED);

        // 创建 Browser 实例。
        var browser = engine.newBrowser();

        invokeLater(() -> {
            var frame = new JFrame("Fuzio Swing");
            frame.addWindowListener(new WindowAdapter() {
                @Override
                public void windowClosing(WindowEvent e) {
                    // 关闭 Chromium 并释放已分配的资源。
                    engine.close();
                }
            });
            // 创建并嵌入 Swing BrowserView 组件以显示 Web 内容。
            frame.add(BrowserView.newInstance(browser));
            frame.setSize(1280, 800);
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);

            // 加载所需网页。
            browser.navigation().loadUrl("https://html5test.jiku.co/");
        });
    }
}
// KotlinSwingApp.kt:

import tech.fuzio.dsl.Engine
import tech.fuzio.engine.RenderingMode.HARDWARE_ACCELERATED
import tech.fuzio.view.swing.BrowserView
import java.awt.event.WindowAdapter
import java.awt.event.WindowEvent
import javax.swing.JFrame
import javax.swing.SwingUtilities

fun main() {
    // 初始化 Chromium。
    val engine = Engine(HARDWARE_ACCELERATED)

    // 创建 Browser 实例。
    val browser = engine.newBrowser()

    SwingUtilities.invokeLater {
        JFrame("Fuzio Swing").apply {
            // 在窗口关闭时关闭 Chromium 并释放资源。
            addWindowListener(object : WindowAdapter() {
                override fun windowClosing(e: WindowEvent) {
                    engine.close()
                }
            })
            // 创建并嵌入 Swing BrowserView 组件以显示网页内容。
            add(BrowserView.newInstance(browser))
            setSize(1280, 800)
            setLocationRelativeTo(null)
            isVisible = true
        }

        // 加载所需网页。
        browser.navigation().loadUrl("https://html5test.jiku.co/")
    }
}

运行 Swing 应用程序 

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

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

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

Swing 应用中的 BrowserView

下一步 

微信咨询

即库客服

微信公众号二维码

技术客服

微信公众号二维码