JavaFX WebView এবং WebEngine

জাভাএফএক্স (JavaFx) - Java Technologies

337

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

১. WebView এবং WebEngine Overview

  • WebView: এটি একটি UI কন্ট্রোল যা HTML কন্টেন্ট ডিসপ্লে করতে ব্যবহৃত হয়। এটি JavaFX অ্যাপ্লিকেশনগুলিতে এক ধরনের নেভিগেটেবল ওয়েব ব্রাউজার যোগ করে।
  • WebEngine: এটি WebView এর জন্য ডাটা প্রক্রিয়াকরণ এবং রেন্ডারিং করার মূল অংশ। এটি ওয়েব পেজ লোড করার জন্য ব্যবহৃত হয়, এবং JavaScript-এর মতো স্ক্রিপ্টিং ভাষাগুলি পরিচালনা করে।

২. WebView এবং WebEngine ব্যবহার করে একটি উদাহরণ তৈরি করা

এখানে একটি সাধারণ উদাহরণ দেওয়া হয়েছে যেখানে WebView এবং WebEngine ব্যবহার করে একটি ওয়েব পেজ দেখানো হয়েছে।

Example: WebView এবং WebEngine ব্যবহার

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 WebViewExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        // Create WebView
        WebView webView = new WebView();
        
        // Get WebEngine from WebView
        WebEngine webEngine = webView.getEngine();
        
        // Load a webpage
        webEngine.load("https://www.example.com");
        
        // Create a layout and add WebView to it
        StackPane root = new StackPane();
        root.getChildren().add(webView);

        // Set up the scene and stage
        Scene scene = new Scene(root, 800, 600);
        primaryStage.setTitle("JavaFX WebView Example");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

ব্যাখ্যা:

  1. WebView:
    • WebView একটি JavaFX কন্ট্রোল যা HTML কন্টেন্ট দেখাতে ব্যবহৃত হয়। এখানে, আমরা এটি তৈরি করেছি এবং ওয়েব পেজ লোড করতে WebEngine ব্যবহার করেছি।
  2. WebEngine:
    • webEngine হল WebView এর সঙ্গে যুক্ত একটি ব্রাউজার ইঞ্জিন যা ওয়েব কন্টেন্ট রেন্ডার করার জন্য ব্যবহৃত হয়।
    • webEngine.load("https://www.example.com"); — এই লাইনটি ওয়েব পেজটি লোড করে।
  3. Scene and Stage:
    • StackPane লেআউট কন্টেইনারে WebView যুক্ত করা হয়েছে।
    • তারপর একটি Scene তৈরি করা হয়েছে এবং সেটি Stage এ সেট করা হয়েছে।

৩. WebView ও JavaScript:

JavaScript কোড WebView এর মধ্যে রান করতে সক্ষম। WebEngine এর মাধ্যমে আপনি JavaScript কার্যক্রমও পরিচালনা করতে পারেন। আপনি যদি JavaScript কোড রান করতে চান, তবে আপনি executeScript() মেথড ব্যবহার করতে পারেন।

উদাহরণ: 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 WebViewJavaScriptExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        // Create WebView
        WebView webView = new WebView();
        
        // Get WebEngine from WebView
        WebEngine webEngine = webView.getEngine();
        
        // Load a simple HTML content with JavaScript
        String htmlContent = "<html><body><h1>Hello from JavaFX WebView!</h1>" +
                             "<button onclick=\"alert('Button Clicked!');\">Click Me!</button></body></html>";
        webEngine.loadContent(htmlContent);

        // Create a layout and add WebView to it
        StackPane root = new StackPane();
        root.getChildren().add(webView);

        // Set up the scene and stage
        Scene scene = new Scene(root, 800, 600);
        primaryStage.setTitle("JavaFX WebView with JavaScript Example");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

ব্যাখ্যা:

  1. JavaScript সহ HTML লোড:
    • এখানে webEngine.loadContent() ব্যবহার করে HTML কন্টেন্ট লোড করা হয়েছে যার মধ্যে একটি JavaScript কোড রয়েছে। এই কোডটি একটি বাটন ক্লিক করলে একটি এলার্ট বার্তা দেখাবে।
  2. JavaScript ফাংশন ব্যবহার:
    • HTML এর মধ্যে JavaScript কোড রয়েছে যা alert() ফাংশন ব্যবহার করে বাটন ক্লিক করার পর একটি পপআপ বার্তা দেখায়।

৪. WebView এর অন্যান্য ফিচার:

  1. History:
    • WebEngine ইতিহাস সংরক্ষণ করে এবং আপনাকে back(), forward(), এবং reload() মেথডগুলি দিয়ে ওয়েব পেজের ইতিহাস নিয়ন্ত্রণ করতে সহায়তা করে।
  2. JavaScript Execution:
    • JavaScript কোড WebEngine.executeScript() মেথড দিয়ে JavaFX অ্যাপ্লিকেশন থেকে চালানো যেতে পারে।
  3. Loading Local Files:
    • আপনি file:// URI ব্যবহার করে লোকাল HTML ফাইলও লোড করতে পারেন, যেমন:

      webEngine.load("file:///path/to/your/local/file.html");
      
  4. WebView এবং Security:
    • WebViewJavaScript ব্যবহার করার সময় নিরাপত্তা দৃষ্টিকোণ থেকে কিছু সীমাবদ্ধতা থাকতে পারে। সুতরাং, যদি আপনার অ্যাপ্লিকেশনটি নিরাপদ না হয়, তবে আপনি কিছু সুরক্ষা ব্যবস্থা নেবেন।

৫. WebView এর উন্নত ব্যবহার:

  • WebView ব্যবহার করে আপনি একটি সঠিক ব্রাউজিং অভিজ্ঞতা তৈরি করতে পারেন, যেমন ভিজ্যুয়াল কন্টেন্ট রেন্ডারিং, JavaScript পারফরম্যান্স ইত্যাদি। আপনি আপনার JavaFX অ্যাপ্লিকেশনগুলিতে ওয়েব ব্রাউজার, কাস্টম UI উপাদান, অথবা HTML5 গেম/অ্যাপ্লিকেশনগুলো এম্বেড করতে পারেন।

সারাংশ:

  • WebView এবং WebEngine JavaFX অ্যাপ্লিকেশনগুলিতে ওয়েব কন্টেন্ট রেন্ডার করার জন্য ব্যবহৃত হয়। WebView UI কন্ট্রোল হিসেবে ব্যবহৃত হয়, এবং WebEngine সেই কন্ট্রোলের মাধ্যমে ওয়েব কন্টেন্ট লোড, প্রক্রিয়া এবং রেন্ডার করে।
  • JavaFX WebView ব্যবহার করে আপনি HTML, CSS এবং JavaScript সম্পূর্ণভাবে ব্যবহার করতে পারেন, এমনকি JavaScript কোডও চালাতে পারেন।
Content added By

JavaFX WebView এবং WebEngine হল দুটি গুরুত্বপূর্ণ উপাদান যা JavaFX অ্যাপ্লিকেশনগুলিতে Web Content প্রদর্শন এবং পরিচালনা করতে ব্যবহৃত হয়। এই দুটি উপাদান HTML, CSS, এবং JavaScript সহ ওয়েব কনটেন্ট দেখানোর ক্ষমতা প্রদান করে।

১. WebView

WebView একটি JavaFX কন্ট্রোল যা একটি ইন্টিগ্রেটেড ওয়েব ব্রাউজারের মতো কাজ করে। এটি আপনাকে আপনার অ্যাপ্লিকেশনে HTML পেজ বা ওয়েব কনটেন্ট দেখতে এবং ইন্টারঅ্যাক্ট করতে সক্ষম করে। এটি একটি WebEngine ব্যবহার করে যা ওয়েব কনটেন্ট রেন্ডার করে।

২. WebEngine

WebEngine হল একটি ক্লাস যা ওয়েব কনটেন্ট রেন্ডার করার জন্য ব্যবহৃত হয়। এটি WebView কন্ট্রোলের মাধ্যমে কাজ করে এবং HTTP বা HTTPS রিকোয়েস্টের মাধ্যমে ওয়েব পেজ লোড করতে পারে। এছাড়া, WebEngine ব্যবহারকারীদের ব্রাউজারের মতো HTML, CSS, এবং JavaScript এর মাধ্যমে ওয়েব কনটেন্ট ইন্টারঅ্যাক্ট করতে সাহায্য করে।

WebView এবং WebEngine ব্যবহারের উদাহরণ

উদাহরণ: WebView এবং WebEngine ব্যবহার করে একটি HTML পেজ প্রদর্শন

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 WebViewExample extends Application {
    @Override
    public void start(Stage primaryStage) {
        // WebView তৈরি
        WebView webView = new WebView();

        // WebEngine পেতে
        WebEngine webEngine = webView.getEngine();

        // ওয়েব পেজ লোড করা
        webEngine.load("https://www.java.com");

        // StackPane layout তৈরি
        StackPane root = new StackPane();
        root.getChildren().add(webView);

        // Scene তৈরি করা
        Scene scene = new Scene(root, 800, 600);

        primaryStage.setTitle("WebView Example");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

ব্যাখ্যা:

  1. WebView: WebView একটি JavaFX কন্ট্রোল যা একটি ওয়েব ব্রাউজারের মতো কাজ করে। এখানে আমরা WebView তৈরি করেছি।
  2. WebEngine: WebEngine হল WebView কন্ট্রোলের একটি অংশ, যা ওয়েব পেজ লোড এবং রেন্ডার করার কাজ করে। এখানে webView.getEngine() ব্যবহার করে WebEngine অ্যাক্সেস করা হয়েছে।
  3. Load Method: webEngine.load() পদ্ধতি দিয়ে আমরা একটি URL লোড করেছি, যা WebView এ প্রদর্শিত হবে। এই উদাহরণে, এটি https://www.java.com ওয়েবসাইটটি লোড করবে।
  4. StackPane Layout: আমরা একটি সাধারণ StackPane লেআউট ব্যবহার করেছি যাতে WebView কে দৃশ্যমান করতে পারি।
  5. Scene and Stage: Scene তৈরি করে এবং সেটি Stage এ সেট করা হয়েছে।

WebView এবং WebEngine এর বৈশিষ্ট্য

  • HTML Rendering: WebView ব্যবহার করে HTML কন্টেন্ট দেখতে পারা যায়, যা ওয়েব পেজের মতো প্রদর্শিত হয়।
  • JavaScript Support: WebEngine JavaScript সমর্থন করে, অর্থাৎ আপনি JavaScript কোডও WebView এর মাধ্যমে রান করাতে পারবেন।
  • Navigation: WebEngine এ ওয়েব পেজ লোড, ব্যাক, ফরওয়ার্ড, রিফ্রেশ ইত্যাদি ফিচার থাকতে পারে।

৩. WebView এর কাস্টমাইজেশন

JavaFX WebView সাধারণত বেশ কিছু কাস্টমাইজেশন ফিচার সরবরাহ করে, যেমন:

  1. Zoom Controls: আপনি ওয়েব পেজে জুম ইন এবং আউট করতে পারেন।
  2. JavaScript Execution: WebEngine এ JavaScript কোড রান করানোর জন্য API রয়েছে।
  3. URL Navigation: আপনি WebView থেকে URL লোড করতে পারেন এবং ওয়েব পেজের মধ্যে নেভিগেট করতে পারেন।

উদাহরণ: JavaScript এক্সিকিউশন

webEngine.executeScript("alert('Hello from JavaFX WebView!');");

এটি JavaScript alert ফাংশন ব্যবহার করে ওয়েব পেজে একটি পপ-আপ চালু করবে।

৪. WebView এ কাস্টম ব্রাউজিং ফিচার

আপনি WebEngine এর মাধ্যমে ব্রাউজারের নেভিগেশন ফিচার কাস্টমাইজ করতে পারেন, যেমন:

  • Back: ওয়েব পেজের আগে ফিরে যাওয়ার জন্য
  • Forward: পরবর্তী পেজে যাওয়ার জন্য
  • Reload: পেজটি রিলোড করার জন্য

উদাহরণ: ব্রাউজারের নেভিগেশন কাস্টমাইজ করা

// Back Button
if (webEngine.getHistory().getCurrentIndex() > 0) {
    webEngine.getHistory().go(-1); // Go back
}

// Forward Button
if (webEngine.getHistory().getCurrentIndex() < webEngine.getHistory().getEntries().size() - 1) {
    webEngine.getHistory().go(1); // Go forward
}

// Reload Button
webEngine.reload(); // Reload the current page

৫. WebView এর মাধ্যমে HTML পেজ রেন্ডারিং

WebView শুধু URL লোড করার জন্য নয়, আপনি local HTML files বা embedded HTML contentও লোড করতে পারেন।

উদাহরণ: Local HTML File লোড করা

webEngine.load("file:///path/to/local/file.html");

উদাহরণ: HTML String লোড করা

String htmlContent = "<html><body><h1>Hello, JavaFX WebView!</h1></body></html>";
webEngine.loadContent(htmlContent);

সারাংশ:

  • WebView হল একটি JavaFX কন্ট্রোল যা ওয়েব কন্টেন্ট প্রদর্শন করতে ব্যবহৃত হয় এবং এটি WebEngine ব্যবহার করে কাজ করে।
  • WebEngine হল একটি ক্লাস যা ওয়েব কনটেন্ট লোড এবং রেন্ডার করার জন্য ব্যবহৃত হয় এবং এতে JavaScript সহ HTML কনটেন্ট পরিচালনা করার ক্ষমতা থাকে।
  • JavaFX WebView এবং WebEngine দিয়ে আপনি JavaFX অ্যাপ্লিকেশনে ওয়েব কনটেন্ট সহজে ইনটিগ্রেট করতে পারেন, ওয়েব পেজ লোড করতে পারেন, এবং JavaScript কোড এক্সিকিউট করতে পারেন।
Content added By

JavaFX-এ আপনি HTML এবং CSS লোড করতে পারেন WebView কম্পোনেন্ট ব্যবহার করে। WebView হলো একটি JavaFX কম্পোনেন্ট যা HTML, CSS এবং JavaScript সহ ওয়েব কন্টেন্ট প্রদর্শন করতে পারে। এটি javafx.scene.web.WebView ক্লাসের মাধ্যমে ব্যবহৃত হয় এবং এটি একটি ব্রাউজারের মতো কাজ করে, যা আপনার JavaFX অ্যাপ্লিকেশনে ওয়েব পেজ লোড করতে সহায়তা করে।

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

WebView ব্যবহারের জন্য প্রয়োজনীয় ধাপ:

  1. WebView এবং WebEngine ব্যবহার করে HTML এবং CSS লোড করা।
  2. CSS স্টাইলশীট যোগ করা।
  3. JavaFX অ্যাপ্লিকেশনের মধ্যে HTML কন্টেন্ট দেখতে পারা।

HTML এবং CSS লোড করার উদাহরণ:

এখানে একটি উদাহরণ দেওয়া হল, যেখানে একটি সহজ HTML পেজ লোড করা হয়েছে এবং CSS ব্যবহার করা হয়েছে।

HTML ফাইল (index.html)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JavaFX HTML and CSS</title>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
    <div class="content">
        <h1>Welcome to JavaFX</h1>
        <p>This is an example of HTML and CSS integration in JavaFX.</p>
    </div>
</body>
</html>

CSS ফাইল (style.css)

body {
    background-color: lightblue;
    font-family: Arial, sans-serif;
}

.content {
    text-align: center;
    margin-top: 50px;
}

h1 {
    color: darkblue;
}

p {
    font-size: 18px;
    color: darkgreen;
}

JavaFX কোড (JavaFXApp.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 JavaFXApp extends Application {

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

        // HTML পেজ লোড করা (স্ট্যাটিক ফাইল)
        webEngine.load(getClass().getResource("index.html").toExternalForm());

        // WebView এর সাথে Scene তৈরি করা
        StackPane root = new StackPane();
        root.getChildren().add(webView);

        Scene scene = new Scene(root, 800, 600);

        primaryStage.setTitle("JavaFX HTML and CSS Example");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

ব্যাখ্যা:

  1. HTML এবং CSS ফাইল তৈরি:
    • index.html এবং style.css ফাইল তৈরি করে HTML এবং CSS কন্টেন্ট রাখুন। HTML ফাইলটি style.css ফাইলের মাধ্যমে স্টাইলশীট লিংক করেছে।
  2. WebView এবং WebEngine:
    • WebView একটি JavaFX কম্পোনেন্ট যা HTML কন্টেন্ট প্রদর্শন করে। এর মাধ্যমে আপনি একটি ব্রাউজার উইন্ডো তৈরি করতে পারেন।
    • WebEngine হল WebView এর উপাদান, যা HTML এবং JavaScript ইঞ্জিন হিসেবে কাজ করে। এটি HTML পেজ লোড এবং প্রদর্শনের কাজ করে।
  3. HTML ফাইল লোড করা:
    • webEngine.load() মেথড ব্যবহার করে HTML ফাইলটি লোড করা হয়। এখানে getClass().getResource("index.html").toExternalForm() ব্যবহার করে স্ট্যাটিক ফাইলটি লোড করা হচ্ছে।
  4. Scene এবং Stage:
    • StackPane একটি লেআউট কন্টেইনার হিসেবে ব্যবহৃত হয়েছে, এবং WebView সেখানে যোগ করা হয়েছে।
    • primaryStage.setScene(scene) এর মাধ্যমে Scene সেট করা হয়েছে এবং primaryStage.show() দিয়ে অ্যাপ্লিকেশনটি প্রদর্শন করা হয়েছে।

WebView এর অন্যান্য কার্যাবলী:

  • JavaScript ইন্টারঅ্যাকশন: JavaFX এর WebView কম্পোনেন্ট JavaScript সমর্থন করে, যার মাধ্যমে আপনি HTML পেজের সাথে JavaScript কোডের মাধ্যমে ইন্টারঅ্যাকশন করতে পারবেন।
  • অনলাইন কন্টেন্ট লোড করা: webEngine.load("https://www.example.com") ব্যবহার করে অনলাইন ওয়েব পেজও লোড করা সম্ভব।
  • ডাইনামিক HTML/JavaScript পরিবর্তন: WebView এর মাধ্যমে HTML পেজের কন্টেন্ট বা JavaScript থেকে ডেটা পরিবর্তন করতে পারেন।

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

Content added By

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

JavaFX ব্যবহার করে আপনি Web-based Content যেমন ওয়েব পেজ, HTML, CSS, JavaScript ইত্যাদি অ্যাপ্লিকেশনের ভিতরে অন্তর্ভুক্ত করতে পারেন। JavaFX WebView ক্লাসের মাধ্যমে আপনি ওয়েব কনটেন্ট প্রদর্শন করতে পারেন। WebView একটি UI উপাদান যা একটি ওয়েব ব্রাউজারের মতো আচরণ করে এবং HTML কন্টেন্ট রেন্ডার করতে সক্ষম।

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

JavaFX WebView ব্যবহার করে ওয়েব কনটেন্ট প্রদর্শন করার উদাহরণ

এখানে একটি উদাহরণ দেওয়া হয়েছে যেখানে JavaFX WebView ব্যবহার করে একটি ওয়েব পেজ প্রদর্শিত হচ্ছে। এছাড়া, JavaScript দিয়ে ওয়েব পেজের ইন্টারঅ্যাকশনও করা হয়েছে।

ধাপ 1: JavaFX WebView ব্যবহার করা

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

public class WebViewExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        // WebView তৈরি করা
        WebView webView = new WebView();
        
        // WebEngine তৈরি করা যা ওয়েব পেজ রেন্ডার করবে
        WebEngine webEngine = webView.getEngine();
        
        // ওয়েব পেজ লোড করা
        webEngine.load("https://www.wikipedia.org");
        
        // ওয়েব পেজ লোড না হলে একটি এলার্ট দেখানো
        webEngine.setOnStatusChanged(event -> {
            if (webEngine.getLocation().equals("about:blank")) {
                Alert alert = new Alert(AlertType.ERROR);
                alert.setTitle("Error");
                alert.setHeaderText("Web Page Load Error");
                alert.setContentText("Could not load the web page.");
                alert.showAndWait();
            }
        });

        // WebView-টি StackPane এর মধ্যে যুক্ত করা
        StackPane root = new StackPane();
        root.getChildren().add(webView);
        
        // Scene তৈরি করা
        Scene scene = new Scene(root, 1024, 768);
        
        // Stage সেট করা এবং দেখানো
        primaryStage.setTitle("JavaFX WebView Example");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

ব্যাখ্যা:

  1. WebView:
    • WebView হলো JavaFX এর একটি ইউজার ইন্টারফেস উপাদান যা একটি ওয়েব পেজ বা HTML কন্টেন্ট প্রদর্শন করতে ব্যবহৃত হয়।
  2. WebEngine:
    • WebEngine হল একটি ইঞ্জিন যা WebView এর ভিতরে ওয়েব কন্টেন্ট রেন্ডার করে। এটি ওয়েব কনটেন্ট লোড করার জন্য ব্যবহৃত হয় (যেমন, ওয়েব পেজ লোড করা)।
    • webEngine.load("URL"): ওয়েব পেজের URL লোড করতে এই মেথডটি ব্যবহার করা হয়। এখানে https://www.wikipedia.org লোড করা হয়েছে।
  3. Error Handling:
    • webEngine.setOnStatusChanged() ব্যবহার করা হয়েছে ওয়েব পেজ লোডিংয়ের স্ট্যাটাস ট্র্যাক করার জন্য। যদি ওয়েব পেজটি লোড না হয়, তবে একটি Alert প্রদর্শিত হবে।
  4. Scene এবং Stage:
    • StackPane একটি লেআউট প্যান, যেটির মধ্যে WebView যুক্ত করা হয়েছে।
    • Scene এর মাধ্যমে ওয়েব কন্টেন্টের লেআউট সেট করা হয়েছে, এবং Stage-এ সেট করা হয়েছে।

ধাপ 2: JavaScript ইন্টিগ্রেশন

আপনি JavaScript এর সাথে ইন্টিগ্রেশন করে JavaFX অ্যাপ্লিকেশন থেকে ওয়েব কন্টেন্টের উপর অ্যাকশন নিতে পারেন। WebEngine এর executeScript() মেথড ব্যবহার করে আপনি 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 WebViewJavaScriptExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        // WebView তৈরি করা
        WebView webView = new WebView();
        
        // WebEngine তৈরি করা
        WebEngine webEngine = webView.getEngine();
        
        // ওয়েব পেজ লোড করা
        webEngine.load("https://www.wikipedia.org");
        
        // কিছু JavaScript এক্সিকিউট করা
        webEngine.setOnAlert(event -> {
            String jsCode = "document.getElementById('searchInput').value = 'JavaFX';"; // Wikipedia Search Box
            webEngine.executeScript(jsCode); // JavaScript কোড এক্সিকিউট করা
        });

        // WebView StackPane এর মধ্যে যুক্ত করা
        StackPane root = new StackPane();
        root.getChildren().add(webView);
        
        // Scene তৈরি করা
        Scene scene = new Scene(root, 1024, 768);
        
        // Stage সেট করা এবং দেখানো
        primaryStage.setTitle("JavaFX WebView with JavaScript Example");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

ব্যাখ্যা:

  1. executeScript():
    • executeScript() মেথডটি JavaScript কোড রান করানোর জন্য ব্যবহার করা হয়। এখানে, আমরা Wikipedia এর সার্চ ইনপুট বক্সে "JavaFX" টেক্সট প্রবেশ করানোর জন্য JavaScript কোড ব্যবহার করেছি।
  2. WebEngine's setOnAlert():
    • এটি JavaScript-এর এলার্ট মেসেজ ট্র্যাক করতে ব্যবহৃত হয়, তবে এখানে আমরা কোড লেখার মাধ্যমে জাভা এবং জাভাস্ক্রিপ্টের মধ্যে ইন্টারঅ্যাকশন করেছি।

JavaFX WebView এর সুবিধা:

  1. Web-based Content Rendering:
    • JavaFX WebView আপনাকে JavaFX অ্যাপ্লিকেশনের ভিতরে ওয়েব কন্টেন্ট (HTML, CSS, JavaScript) রেন্ডার করতে সহায়তা করে।
  2. JavaScript Integration:
    • আপনি JavaScript এর মাধ্যমে ওয়েব পেজের সাথে ইন্টারঅ্যাক্ট করতে পারেন এবং এটি JavaFX অ্যাপ্লিকেশনের সাথে ইন্টিগ্রেট করতে পারেন।
  3. Cross-platform Compatibility:
    • JavaFX অ্যাপ্লিকেশনটি যে প্ল্যাটফর্মে চলে (Windows, macOS, Linux) সেখানে WebView ওয়েব কন্টেন্ট দেখাতে সক্ষম, এবং এতে cross-platform সমর্থন রয়েছে।
  4. WebView Features:
    • আপনি বিভিন্ন ওয়েব পেজ লোড করতে পারেন, ওয়েব কন্টেন্টে স্টাইল পরিবর্তন করতে পারেন, এবং ওয়েব কন্টেন্টের সঙ্গে JavaScript ও অন্যান্য ওয়েব টেকনোলজির মাধ্যমে ইন্টারঅ্যাক্ট করতে পারেন।

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

Content added By
Promotion

Are you sure to start over?

Loading...