欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java使用WebView實現(xiàn)桌面程序的技術指南

 更新時間:2025年05月11日 15:54:55   作者:Mcband  
在現(xiàn)代軟件開發(fā)中,許多應用需要在桌面程序中嵌入 Web 頁面,例如,你可能需要在 Java 桌面應用中嵌入一部分 Web 前端,或者加載一個 HTML5 界面以增強用戶體驗,所以本文給大家介紹了Java使用WebView實現(xiàn)桌面程序的技術指南,需要的朋友可以參考下

1、簡述

在現(xiàn)代軟件開發(fā)中,許多應用需要在桌面程序中嵌入 Web 頁面。例如,你可能需要在 Java 桌面應用中嵌入一部分 Web 前端,或者加載一個 HTML5 界面以增強用戶體驗。JavaFX 提供了 WebView 組件,使開發(fā)者可以輕松地在 Java 應用程序中加載和顯示 Web 頁面。

本博客將介紹 JavaFX WebView 的基本用法,并提供一個完整的示例,演示如何加載網(wǎng)頁并與 JavaScript 交互。

2、WebView 特點

WebView 是 JavaFX 提供的一個嵌入式瀏覽器組件,它基于 WebKit 渲染引擎,支持 HTML、CSS 和 JavaScript,適用于在 Java 應用中顯示 Web 內容。它的主要特點包括:

  • 支持加載本地或遠程 HTML 頁面
  • 允許 Java 與 JavaScript 互相調用
  • 提供完整的網(wǎng)頁渲染能力
  • 適用于 JavaFX 桌面應用

3、搭建 WebView 示例

3.1 添加 JavaFX 依賴

如果你使用 Maven,需要在 pom.xml 文件中添加 JavaFX 依賴:

<dependencies>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-controls</artifactId>
        <version>17</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-web</artifactId>
        <version>17</version>
    </dependency>
</dependencies>

3.2 編寫 WebView 示例代碼

下面的 Java 代碼演示了如何使用 WebView 加載網(wǎng)頁,并提供了簡單的 JavaScript 交互功能。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

public class WebViewDemo extends Application {

    @Override
    public void start(Stage primaryStage) {
        // 創(chuàng)建 WebView
        WebView webView = new WebView();
        WebEngine webEngine = webView.getEngine();

        // 加載網(wǎng)頁,可以是本地文件或在線網(wǎng)頁
        webEngine.load("https://www.baidu.com");

        // 創(chuàng)建一個 JavaFX 窗口
        VBox root = new VBox(webView);
        Scene scene = new Scene(root, 800, 600);

        primaryStage.setTitle("Java WebView 示例");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

3.3 運行效果

運行上面的代碼后,會彈出一個 JavaFX 窗口,并在其中加載指定的 Web 頁面。

4、實現(xiàn) Java 和 JavaScript 交互

4.1 在 Java 中調用 JavaScript

我們可以通過 WebEngine 執(zhí)行 JavaScript 代碼,例如:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

public class WebViewJavaScriptDemo extends Application {

    @Override
    public void start(Stage primaryStage) {
        WebView webView = new WebView();
        WebEngine webEngine = webView.getEngine();
        webEngine.loadContent("<html><body><h2>Java 與 JavaScript 交互</h2></body></html>");

        // 處理 JavaScript alert 彈窗
        webEngine.setOnAlert(event -> {
            Alert alert = new Alert(Alert.AlertType.INFORMATION);
            alert.setTitle("JavaScript Alert");
            alert.setHeaderText(null);
            alert.setContentText(event.getData());
            alert.showAndWait();
        });

        // 創(chuàng)建按鈕,點擊后觸發(fā) Java 調用 JavaScript
        Button button = new Button("調用 JavaScript");
        button.setOnAction(event -> webEngine.executeScript("alert('Java 調用 JavaScript!');"));


        VBox root = new VBox(webView, button);
        Scene scene = new Scene(root, 800, 600);

        primaryStage.setTitle("JavaFX WebView JavaScript 交互");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

點擊按鈕后,會彈出 JavaScript alert 彈窗。

4.2 在 JavaScript 中調用 Java 方法

你可以讓 JavaScript 調用 Java 方法,例如:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
import netscape.javascript.JSObject;

public class JavaScriptToJavaDemo extends Application {
    public static class JavaBridge {
        public void showMessage(String message) {
            System.out.println("JavaScript 調用 Java: " + message);
        }
    }

    @Override
    public void start(Stage primaryStage) {
        WebView webView = new WebView();
        WebEngine webEngine = webView.getEngine();

        webEngine.load("file:///E:\\lk\\springboot-example\\lm-javafx\\src\\main\\resources\\html\\activity.html");

        // 綁定 Java 對象到 JavaScript
        JSObject window = (JSObject) webEngine.executeScript("window");
        window.setMember("javaBridge", new JavaBridge());

        VBox root = new VBox(webView);
        Scene scene = new Scene(root, 800, 600);

        primaryStage.setTitle("JavaScript 調用 Java 示例");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

在resource目錄創(chuàng)建一個html目錄,存放當前交互的html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
<h2>JavaScript 調用 Java</h2>
<button onclick="javaBridge.showMessage('Hello from JavaScript!')">點擊調用 Java 方法</button>
</body>
<script>
    function callJava() {
        javaBridge.showMessage("JavaScript 觸發(fā) Java 方法!");
    }
</script>
</html>

在 HTML 頁面中點擊按鈕后,JavaScript 會調用 Java 的 showMessage 方法,并在控制臺打印消息:

JavaScript 調用 Java: Hello from JavaScript!
JavaScript 調用 Java: Hello from JavaScript!
JavaScript 調用 Java: Hello from JavaScript

5、打包為可執(zhí)行文件(.exe)

可以使用 jpackage 將 JavaFX 應用打包為可執(zhí)行文件(.exe):

jpackage --name WebViewApp --input . --main-jar WebViewDemo.jar --main-class WebViewDemo --type exe

這樣就可以將 Java WebView 應用打包為 Windows 可執(zhí)行文件。

6、總結

在本博客中,我們介紹了如何在 JavaFX 中使用 WebView 加載網(wǎng)頁,并實現(xiàn) Java 與 JavaScript 之間的交互。核心內容包括:

  • 在 Java 中嵌入 WebView 并加載網(wǎng)頁
  • Java 調用 JavaScript 代碼
  • JavaScript 調用 Java 方法
  • 將 Java WebView 應用打包成 .exe

通過 WebView,可以輕松地在 Java 桌面應用中嵌入 Web 技術,從而結合 Web 和 Java 的優(yōu)勢來開發(fā)強大的桌面應用。

以上就是Java使用WebView實現(xiàn)桌面程序的技術指南的詳細內容,更多關于Java WebView桌面程序的資料請關注腳本之家其它相關文章!

相關文章

  • SpringBoot整合redis+Aop防止重復提交的實現(xiàn)

    SpringBoot整合redis+Aop防止重復提交的實現(xiàn)

    Spring Boot通過AOP可以實現(xiàn)防止表單重復提交,本文主要介紹了SpringBoot整合redis+Aop防止重復提交的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • Java多線程Thread類的使用詳解

    Java多線程Thread類的使用詳解

    這篇文章主要介紹了Java多線程Thread類的使用及注意事項,在java標準庫中提供了一個Thread類來表示/操作線程,Thread類也可以視為是java標準庫提供的API
    2022-12-12
  • MyBatis的<foreach>以及java代碼的批處理方式

    MyBatis的<foreach>以及java代碼的批處理方式

    這篇文章主要介紹了MyBatis的<foreach>以及java代碼的批處理方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Flowable整合SpringBoot實現(xiàn)的示例代碼

    Flowable整合SpringBoot實現(xiàn)的示例代碼

    本文詳細介紹了如何在SpringBoot項目中整合Flowable進行工作流管理,包括依賴引入、流程部署與啟動、表結構、流程掛起和激活以及任務分配等關鍵操作,具有一定的參考價值,感興趣的可以了解一下
    2024-09-09
  • mybatis批量更新與插入方式

    mybatis批量更新與插入方式

    這篇文章主要介紹了mybatis批量更新與插入方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • idea創(chuàng)建SpringBoot自動創(chuàng)建Lombok無效果的問題解決方案

    idea創(chuàng)建SpringBoot自動創(chuàng)建Lombok無效果的問題解決方案

    這篇文章主要介紹了idea創(chuàng)建SpringBoot自動創(chuàng)建Lombok無效果的問題解決方案,感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • java開發(fā)技巧代碼寫的快且bug少的原因分析

    java開發(fā)技巧代碼寫的快且bug少的原因分析

    這篇文章主要為大家介紹了java開發(fā)中代碼寫的快且bug少的原因分析及技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • 基于RecyclerChart的KLine繪制詳解

    基于RecyclerChart的KLine繪制詳解

    這篇文章主要為大家詳細介紹了基于RecyclerChart實現(xiàn)KLine繪制的相關資料,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-03-03
  • java.util.ArrayDeque類使用方法詳解

    java.util.ArrayDeque類使用方法詳解

    這篇文章主要介紹了java.util.ArrayDeque類使用方法,java.util.ArrayDeque類提供了可調整大小的陣列,并實現(xiàn)了Deque接口,感興趣的小伙伴們可以參考一下
    2016-03-03
  • 關于Mybatis-Plus字段策略與數(shù)據(jù)庫自動更新時間的一些問題

    關于Mybatis-Plus字段策略與數(shù)據(jù)庫自動更新時間的一些問題

    這篇文章主要介紹了關于Mybatis-Plus字段策略與數(shù)據(jù)庫自動更新時間的一些問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10

最新評論