“MỌI SỰ CỐ GẮNG CHƯA CHẮC ĐÃ GẶT HÁI ĐƯỢC KẾT QUẢ NHƯNG MỖI KẾT QUẢ ĐẠT ĐƯỢC CHẮC CHẮN LÀ CẢ MỘT QUÁ TRÌNH CỐ GẮNG”

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ập16
  • Hôm nay2,124
  • Tháng hiện tại83,082
  • Tổng lượt truy cập9,174,625
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