JAVAFX HTMLEditorJS

Thứ bảy - 16/03/2024 10:44

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

Tổng số điểm của bài viết là: 0 trong 0 đánh giá

Click để đánh giá bài viết
Thống kê
  • Đang truy cập7
  • Hôm nay1,328
  • Tháng hiện tại7,637
  • Tổng lượt truy cập9,199,120
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