JavaFX এ XML ব্যবহার এবং Scene ম্যানেজমেন্ট

XML এবং JavaFX Integration - জাভা এক্সএমএল (Java XML) - Java Technologies

304

JavaFX একটি আধুনিক GUI (Graphical User Interface) ফ্রেমওয়ার্ক যা Java ব্যবহার করে ডেস্কটপ এবং মোবাইল অ্যাপ্লিকেশন তৈরি করতে সহায়তা করে। JavaFX এ XML ব্যবহারের মাধ্যমে ইউজার ইন্টারফেস (UI) ডেভেলপ করা এবং Scene Management করা যায়। JavaFX এর সাথে XML ব্যবহারের মাধ্যমে UI তৈরি করতে FXML ফাইল ব্যবহার করা হয়, যা XML ভিত্তিক একটি ভাষা যা ইউজার ইন্টারফেসের লেআউট এবং স্ট্রাকচার নির্ধারণ করে। এখানে, JavaFX এ XML ব্যবহার এবং Scene Management করার প্রক্রিয়া সম্পর্কে বিস্তারিত আলোচনা করা হলো।

1. FXML (FXML - JavaFX XML)

FXML হলো একটি XML ডিক্লেয়ারেটিভ ভাষা যা JavaFX এর UI তৈরি করতে ব্যবহৃত হয়। এটি JavaFX এর উপাদানগুলির লেআউট এবং গঠন নির্ধারণ করতে ব্যবহৃত হয়। FXML ফাইল ব্যবহার করার মাধ্যমে UI ডিজাইন কোড এবং লজিক থেকে আলাদা রাখা যায়, যা কোডের রিডেবিলিটি এবং রক্ষণাবেক্ষণ সহজ করে তোলে।

FXML এর সুবিধা:

  • ডিজাইন এবং কোড আলাদা: UI ডিজাইন এবং লগিক কোড আলাদা থাকে, যা কোড রিডেবিলিটি উন্নত করে।
  • ডিজাইনার টুলস সমর্থন: JavaFX এর জন্য FXML ফাইল ডিজাইন করার জন্য Scene Builder নামক একটি GUI টুল রয়েছে যা XML ভিত্তিক UI ডিজাইন তৈরি করতে সাহায্য করে।
  • শক্তিশালী XML পার্সিং: FXML ফাইলের XML পদ্ধতি JavaFX এর উপাদানগুলির মধ্যে লেআউট এবং আর্গুমেন্ট সহজেই পার্স এবং কনফিগার করা যায়।

FXML ফাইলের উদাহরণ:

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.StackPane?>
<?import javafx.scene.control.Button?>

<StackPane xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.example.MyController">
    <Button text="Click Me!" onAction="#handleButtonClick"/>
</StackPane>

এখানে StackPane এবং Button JavaFX এর UI উপাদান, যেখানে onAction এট্রিবিউটের মাধ্যমে একটি ইভেন্ট হ্যান্ডলার (Java মেথড) লিংক করা হয়েছে।

2. FXML লোডিং এবং কোডিং (FXML Loading and Controller)

FXML ফাইল লোড করার জন্য FXMLLoader ব্যবহার করা হয়। FXMLLoader ক্লাসটি JavaFX এ XML ডকুমেন্ট (FXML ফাইল) লোড করে এবং এর সাথে সম্পর্কিত কন্ট্রোলার ক্লাসের মধ্যে প্রপার্টি এবং ইভেন্ট হ্যান্ডলারগুলিকে অ্যাসোসিয়েট করে।

FXML লোডিং উদাহরণ:

import javafx.application.Application;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class MainApp extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        // FXML লোড করা
        FXMLLoader loader = new FXMLLoader(getClass().getResource("scene.fxml"));
        StackPane root = loader.load();

        // Scene তৈরি
        Scene scene = new Scene(root, 300, 250);

        // Stage সেট করা
        primaryStage.setTitle("FXML Example");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

এখানে FXMLLoader ব্যবহার করে FXML ফাইল লোড করা হয়েছে, তারপর Scene তৈরি করা হয়েছে এবং সেটি Stage এ দেখানো হয়েছে।

3. Scene Management in JavaFX

JavaFX এ Scene হল ইউজার ইন্টারফেসের উপাদানগুলির একটি কনটেইনার। আপনি Scene এর মধ্যে বিভিন্ন JavaFX UI উপাদান যেমন Buttons, Labels, TextFields, ইত্যাদি যুক্ত করতে পারেন। JavaFX এ একাধিক Scene ব্যবহার করা সম্ভব এবং এগুলি সহজেই সুইচ করা যেতে পারে।

Scene Management-এর জন্য কিছু পদ্ধতি:

  1. Scene Switch: একাধিক Scene ব্যবহার করে অ্যাপ্লিকেশনে এক Scene থেকে অন্য Scene এ সহজে পরিবর্তন করা যায়।
  2. Scene Transition: UI এর মধ্যে রৈখিক পরিবর্তন বা প্রগ্রেসিভ মোড পরিবর্তন করার জন্য Transition ব্যবহার করা যায়, যেমন FadeTransition, TranslateTransition, ইত্যাদি।

Scene Switching উদাহরণ:

ধরা যাক, আমাদের দুইটি Scene রয়েছে: একটি Login Scene এবং একটি Home Scene। এক Scene থেকে অন্য Scene এ সুইচ করার জন্য, আমরা JavaFX এ Stage.setScene() ব্যবহার করতে পারি।

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class SceneSwitcherApp extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        // প্রথম Scene লোড করা (Login)
        FXMLLoader loginLoader = new FXMLLoader(getClass().getResource("login.fxml"));
        StackPane loginRoot = loginLoader.load();
        Scene loginScene = new Scene(loginRoot, 300, 250);

        // দ্বিতীয় Scene লোড করা (Home)
        FXMLLoader homeLoader = new FXMLLoader(getClass().getResource("home.fxml"));
        StackPane homeRoot = homeLoader.load();
        Scene homeScene = new Scene(homeRoot, 300, 250);

        // login scene থেকে home scene এ পরিবর্তন করা
        // login.fxml এর মধ্যে একটি button এর মাধ্যমে homeScene সেট করা হবে
        primaryStage.setTitle("Scene Switcher");
        primaryStage.setScene(loginScene);
        primaryStage.show();

        // Home scene এর জন্য button event handler
        // homeScene.setOnAction(e -> primaryStage.setScene(homeScene)); // Example Action
    }

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

এখানে primaryStage.setScene() ব্যবহার করে Scene পরিবর্তন করা হচ্ছে।

4. FXML Controller এবং Event Handling

FXML ফাইল এবং Java কোডের মধ্যে যোগাযোগের জন্য Controller ক্লাস ব্যবহার করা হয়। FXML ফাইলের মধ্যে থাকা UI উপাদানগুলির সাথে Controller এর মেথড এবং প্রপার্টি ম্যানেজ করার জন্য, FXML এর fx:controller এট্রিবিউট ব্যবহার করা হয়।

FXML Controller উদাহরণ:

import javafx.fxml.FXML;
import javafx.scene.control.Button;

public class MyController {
    @FXML
    private Button myButton;

    @FXML
    public void handleButtonClick() {
        System.out.println("Button clicked!");
    }
}

এখানে handleButtonClick() মেথডটি FXML ফাইলের মধ্যে থাকা Button এর onAction ইভেন্টের মাধ্যমে কল করা হবে।

5. FXML SceneBuilder ব্যবহার

Scene Builder হল একটি GUI টুল যা FXML ফাইল তৈরি করতে সাহায্য করে। এটি ইউজার ইন্টারফেস ডিজাইনার হিসেবে কাজ করে এবং গ্রাফিক্যালভাবে UI তৈরি করার সুবিধা দেয়। Scene Builder ব্যবহার করে আপনি সহজেই FXML ফাইল তৈরি করতে পারেন এবং এটি সরাসরি JavaFX প্রোজেক্টে যুক্ত করতে পারেন।

JavaFX এ XML ব্যবহার করার জন্য FXML ফাইল একটি শক্তিশালী এবং কার্যকর পদ্ধতি। এটি UI ডিজাইন এবং কোডিং আলাদা করে, যা কোড রিডেবিলিটি এবং রক্ষণাবেক্ষণ সহজ করে তোলে। JavaFX তে Scene Management এবং Scene Switching ব্যবহার করে আপনি অ্যাপ্লিকেশনে বিভিন্ন UI পর্দার মধ্যে দ্রুত পরিবর্তন করতে পারেন। FXML এবং Scene Management সহ JavaFX একটি খুবই শক্তিশালী এবং নমনীয় GUI টুল।

Content added By
Promotion

Are you sure to start over?

Loading...