WebEngine এর মাধ্যমে JavaScript Integration

JavaFX WebView এবং WebEngine - জাভাএফএক্স (JavaFx) - Java Technologies

272

JavaFX তে WebView এবং WebEngine ব্যবহার করে আপনি HTML, CSS এবং JavaScript কনটেন্টকে JavaFX অ্যাপ্লিকেশনে অন্তর্ভুক্ত করতে পারেন। WebView একটি কম্পোনেন্ট যা ওয়েব কন্টেন্ট প্রদর্শন করে, এবং WebEngine এর মাধ্যমে আপনি JavaScript কোড এবং ওয়েব পেজের সাথে ইন্টিগ্রেট করতে পারেন।

JavaFX অ্যাপ্লিকেশন থেকে আপনি JavaScript কোড এক্সিকিউট করতে এবং JavaScript থেকে Java ফাংশন কল করতে পারেন। এই সমাধানটি বিশেষভাবে দরকারী যখন আপনি ওয়েবের মতো ইন্টারেক্টিভ কন্টেন্ট JavaFX অ্যাপ্লিকেশনে এম্বেড করতে চান।

JavaFX WebView এবং WebEngine ব্যবহার করে JavaScript Integration

ধাপ ১: WebView এবং WebEngine সেটআপ

JavaFX তে WebView এবং WebEngine ব্যবহার করে আপনি HTML পেজ লোড করতে পারেন এবং JavaScript এর সাথে ইন্টারঅ্যাক্ট করতে পারেন।

WebView একটি UI উপাদান যা ওয়েব কন্টেন্ট দেখানোর জন্য ব্যবহৃত হয়, এবং WebEngine সেই ওয়েব কন্টেন্টের ভিতরে কাজ করে (HTML, CSS, JavaScript)।

উদাহরণ: JavaFX WebView এর মাধ্যমে JavaScript ব্যবহার

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

public class WebEngineExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        // WebView তৈরি
        WebView webView = new WebView();
        WebEngine webEngine = webView.getEngine(); // WebEngine অবজেক্ট পাওয়া

        // JavaScript এর সাথে ইন্টারঅ্যাক্ট করা
        webEngine.loadContent("<html><body>" +
                "<h1>JavaFX WebEngine Example</h1>" +
                "<p>Click the button to call JavaScript from Java!</p>" +
                "<button onclick='sayHello()'>Say Hello</button>" +
                "<script>" +
                "function sayHello() {" +
                "   alert('Hello from JavaScript!');" +
                "}" +
                "</script>" +
                "</body></html>");

        // Java থেকে JavaScript ফাংশন কল করা
        webEngine.executeScript("sayHello();"); // Java থেকে JavaScript ফাংশন কল করা

        StackPane root = new StackPane();
        root.getChildren().add(webView);

        Scene scene = new Scene(root, 800, 600);
        primaryStage.setTitle("WebEngine with JavaScript");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

ব্যাখ্যা:

  1. WebView: ওয়েব কন্টেন্ট (HTML, CSS, JavaScript) দেখানোর জন্য একটি কম্পোনেন্ট। WebEngine এর মাধ্যমে এর ভিতরের কন্টেন্ট নিয়ন্ত্রণ করা হয়।
  2. WebEngine: WebView এর মাধ্যমে ওয়েব কন্টেন্ট রেন্ডার করা হয়। loadContent() ব্যবহার করে সরাসরি HTML কন্টেন্ট লোড করা হচ্ছে।
  3. JavaScript এক্সিকিউশন: executeScript() মেথড ব্যবহার করে Java থেকে JavaScript ফাংশন sayHello() কল করা হচ্ছে।

ধাপ ২: Java থেকে JavaScript এ ডেটা পাঠানো এবং JavaScript থেকে Java এ ডেটা গ্রহণ করা

JavaFX তে Java থেকে JavaScript ফাংশন কল করার পাশাপাশি, আপনি JavaScript থেকে Java এ ডেটাও পাঠাতে পারেন এবং Java থেকে JavaScript এর ভিতরে ডেটা পাঠাতে পারেন।

উদাহরণ: Java থেকে JavaScript এ ডেটা পাঠানো এবং JavaScript থেকে Java এ ডেটা গ্রহণ করা

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

public class WebEngineInteractionExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        // WebView তৈরি
        WebView webView = new WebView();
        WebEngine webEngine = webView.getEngine();

        // JavaScript ফাংশন তৈরি
        webEngine.loadContent("<html><body>" +
                "<h1>Java to JavaScript Communication</h1>" +
                "<p>Click the button to get data from Java to JavaScript.</p>" +
                "<button onclick='receiveDataFromJava()'>Get Data</button>" +
                "<script>" +
                "function receiveDataFromJava() {" +
                "   var data = javaData;" +
                "   alert('Received data from Java: ' + data);" +
                "}" +
                "</script>" +
                "</body></html>");

        // Java থেকে JavaScript এ ডেটা পাঠানো
        webEngine.executeScript("var javaData = 'Hello from Java!';");

        // JavaScript থেকে Java এ ডেটা গ্রহণ করার জন্য JavaScript কোড লেখার পদ্ধতি:
        webEngine.setOnAlert(event -> {
            System.out.println("Alert from JavaScript: " + event.getData());
        });

        StackPane root = new StackPane();
        root.getChildren().add(webView);

        Scene scene = new Scene(root, 800, 600);
        primaryStage.setTitle("WebEngine with JavaScript Interaction");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

ব্যাখ্যা:

  • এখানে, JavaScript থেকে javaData ভেরিয়েবলটি গ্রহণ করা হচ্ছে, যা Java থেকে পাঠানো হয়েছে।
  • webEngine.setOnAlert() মেথড ব্যবহার করে JavaScript থেকে পাঠানো alert ডেটাকে Java তে গ্রহণ করা হয়েছে। এটি JavaScript alert থেকে পাঠানো ডেটা লগ করতে ব্যবহৃত হয়।

JavaFX WebView এবং WebEngine এর মাধ্যমে JavaScript ইন্টিগ্রেশন এর সুবিধা:

  1. WebView ব্যবহার করে HTML এবং CSS প্রদর্শন করা: JavaFX অ্যাপ্লিকেশনে ওয়েব কন্টেন্ট প্রদর্শন করতে সক্ষম।
  2. Java থেকে JavaScript ফাংশন কল করা: Java কোড থেকে JavaScript এর ফাংশন এবং কোড এক্সিকিউট করতে পারেন।
  3. JavaScript থেকে Java ডেটা পাঠানো এবং গ্রহণ করা: JavaScript থেকে Java তে ডেটা পাঠানো এবং Java থেকে JavaScript তে ডেটা পাঠানো সম্ভব।
  4. উন্নত ওয়েব কন্টেন্ট হ্যান্ডলিং: আপনি JavaFX অ্যাপ্লিকেশনগুলোতে ওয়েব কন্টেন্ট যুক্ত করতে পারেন, যেমন HTML ফর্ম, ইন্টারঅ্যাকটিভ ওয়েব পেজ, এবং অন্যান্য ওয়েব টেকনোলজি।

JavaFX এর WebView এবং WebEngine ক্লাসের মাধ্যমে আপনি JavaFX অ্যাপ্লিকেশনে ওয়েব কন্টেন্ট অন্তর্ভুক্ত করতে পারেন এবং JavaScript এর সাথে ইন্টিগ্রেট করতে পারেন। আপনি Java থেকে JavaScript ফাংশন কল করতে পারেন এবং JavaScript থেকে Java তে ডেটা পাঠাতে এবং গ্রহণ করতে পারেন, যা একটি শক্তিশালী ইন্টারঅ্যাকটিভ ওয়েব অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে।

Content added By
Promotion

Are you sure to start over?

Loading...