Gọi hàm JavaScript trả kết quả hiển thị trong HTMLEditor
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
Những tin mới hơn
Những tin cũ hơn
- Click vào nút hiển thị ngày trong tuần hoặc tháng âm lịch để xem chi tiết
- Màu đỏ: Ngày tốt
- Xanh lá: Đầu tháng âm lịch
- Màu vàng: Ngày hiện tại