DATAONLINE.IO.VN

https://365.io.vn

JAVAFX HTMLEditorJS

Gọi hàm JavaScript trả kết quả hiển thị trong HTMLEditor

JAVAFX HTMLEditorJS

1) JavaScript lưu trong thư mục “resources\js\tinhtoan.js”

function getTong(a, b) {
    var tong = a + b;
    return  tong;
}

function getHieu(a, b) {
    var hieu = a - b;
    return  hieu;
}

2) HTMLEditorJS

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.HTMLEditor;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

public class HTMLEditorJS extends Application {

    @Override
    public void start(Stage primaryStage) {
        // Tạo một trình soạn thảo HTML
        HTMLEditor htmlEditor = new HTMLEditor();

        // Lấy ra đối tượng WebEngine từ trình soạn thảo HTML
        WebView webView = (WebView) htmlEditor.lookup(".web-view");
        WebEngine webEngine = webView.getEngine();
        try {
            String filePath = "/js/tinhtoan.js";
            // Đọc nội dung của tệp JavaScript
            String script = readScriptFile(filePath);
            // Thực thi mã JavaScript trong đối tượng WebEngine
            webEngine.executeScript(script);
            htmlEditor.setHtmlText("Gọi hàm JavaScrip từ tệp:" + "</br>");
            // Gọi hàm JavaScript để tính tổng và lấy kết quả
            String hamscript = "getTong(5, 10);";
            int tong = (int) webEngine.executeScript(hamscript);

            hamscript = "getHieu(5, 10);";
            int hieu = (int) webEngine.executeScript(hamscript);

            // Chèn kết quả vào HTML Editor       
            htmlEditor.setHtmlText(htmlEditor.getHtmlText() + tong + "</br>");
            htmlEditor.setHtmlText(htmlEditor.getHtmlText() + hieu + "</br>");
            // Tạo một Scene mới và thêm HTML Editor vào đó
            Scene scene = new Scene(htmlEditor);

            // Đặt cảnh và hiển thị cửa sổ
            primaryStage.setScene(scene);
        } catch (Exception e) {
            System.out.println("Err: " + e.getMessage());
        }
        primaryStage.setTitle("JavaFX HTML Editor with JavaScript Result");
        primaryStage.show();

    }

    // Phương thức để đọc nội dung của tệp JavaScript địa chỉ tương đối
    private String readScriptFile(String filePath) {
        try {
            StringBuilder contentBuilder = new StringBuilder();
            InputStream is = getClass().getResourceAsStream(filePath);
            BufferedReader br = new BufferedReader(new InputStreamReader(is));
            String line;
            while ((line = br.readLine()) != null) {
                contentBuilder.append(line).append("\n");
            }
            return contentBuilder.toString();

        } catch (IOException e) {
            return null;
        }
    }

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

- Kết quả:

 

Tác giả: Vàng Văn Quyn

Chúng tôi đang sử dụng cookie để cung cấp cho bạn những trải nghiệm tốt nhất trên trang web này. Bằng cách tiếp tục truy cập, bạn đồng ý với Chính sách thu thập và sử dụng cookie của chúng tôi.
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây