FXML হল একটি XML ভিত্তিক ফাইল ফরম্যাট যা JavaFX UI তৈরি করতে ব্যবহৃত হয়। FXML-এর মাধ্যমে আপনি JavaFX অ্যাপ্লিকেশনের UI ডিজাইন করতে পারেন এবং UI থেকে পৃথকভাবে Java কোড (ব্যাকএন্ড) লিখতে পারেন, যা MVC (Model-View-Controller) আর্কিটেকচার অনুসরণ করে। এটি JavaFX অ্যাপ্লিকেশন তৈরিতে ডিজাইনার এবং ডেভেলপারদের জন্য স্বতন্ত্রভাবে কাজ করার সুযোগ প্রদান করে।
FXML কি?
FXML একটি XML ডোকুমেন্ট যা JavaFX কন্ট্রোল এবং উপাদানগুলিকে চিহ্নিত করে। এই ফাইলটি JavaFX UI ডেভেলপমেন্টের জন্য ব্যবহৃত হয় এবং এটি Java কোডের সাথে যুক্ত হয়ে কাজ করে। FXML লোডার (FXMLLoader) এই FXML ফাইলটি লোড করে এবং প্রপার JavaFX UI কন্ট্রোল তৈরি করে।
FXML এর মাধ্যমে JavaFX UI তৈরির প্রক্রিয়া:
- FXML ফাইল তৈরি করা: UI ডিজাইন করার জন্য FXML ফাইল তৈরি করুন।
- FXMLLoader ব্যবহার করে FXML লোড করা: Java কোডে
FXMLLoaderব্যবহার করে FXML ফাইলটি লোড করুন। - Controller class তৈরি করা: FXML ডকুমেন্টের সাথে Java কোড যুক্ত করতে একটি কন্ট্রোলার ক্লাস তৈরি করুন।
- JavaFX অ্যাপ্লিকেশন চালানো: Java কোডের মাধ্যমে UI লোড এবং অ্যাপ্লিকেশন চালানো।
উদাহরণ সহ FXML ব্যবহার করে JavaFX UI তৈরির কৌশল:
1. FXML ফাইল তৈরি করা:
এখানে আমরা একটি সহজ UI তৈরি করব যেখানে একটি বাটন এবং একটি টেক্সট ফিল্ড থাকবে। বাটনে ক্লিক করলে একটি ম্যাসেজ টেক্সট ফিল্ডে প্রদর্শিত হবে।
MainUI.fxml:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.control.*?>
<AnchorPane xmlns:fx="http://javafx.com/fxml/1" fx:controller="MainController">
<children>
<Button text="Click Me" fx:id="button" layoutX="100.0" layoutY="100.0" onAction="#handleButtonClick"/>
<TextField fx:id="textField" layoutX="100.0" layoutY="150.0" />
</children>
</AnchorPane>
- এখানে,
fx:idএর মাধ্যমে UI উপাদানগুলিকে চিহ্নিত করা হয়েছে। onAction="#handleButtonClick"এর মাধ্যমে বাটন ক্লিক করার পর যে ফাংশনটি কল হবে তা নির্দিষ্ট করা হয়েছে।
2. Controller class তৈরি করা:
FXML ফাইলের সাথে যুক্ত Java কোড লিখতে আমরা একটি কন্ট্রোলার ক্লাস তৈরি করব। কন্ট্রোলার ক্লাসের মধ্যে FXML ডকুমেন্টের উপাদানগুলি কন্ট্রোল এবং পরিচালনা করা হবে।
MainController.java:
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
public class MainController {
@FXML
private Button button; // FXML ফাইল থেকে Button আইডি লোড হবে
@FXML
private TextField textField; // FXML ফাইল থেকে TextField আইডি লোড হবে
@FXML
private void handleButtonClick() {
textField.setText("Hello, JavaFX!"); // বাটন ক্লিক হলে টেক্সট ফিল্ডে মেসেজ প্রদর্শন
}
}
- এখানে,
@FXMLঅ্যানোটেশন ব্যবহার করে আমরা FXML ফাইলের UI উপাদানগুলির সাথে Java কোডের লিঙ্ক তৈরি করেছি। handleButtonClick()মেথডটি বাটনে ক্লিক করলে কল হবে এবং টেক্সট ফিল্ডে একটি স্ট্রিং সেট করবে।
3. Java Application (FXMLLoader) ব্যবহার করা:
এখন আমরা FXMLLoader ব্যবহার করে FXML ফাইলটি লোড করব এবং JavaFX অ্যাপ্লিকেশন চালাব।
MainApp.java:
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
public class MainApp extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
// FXML লোড করা
FXMLLoader loader = new FXMLLoader(getClass().getResource("MainUI.fxml"));
AnchorPane root = loader.load();
// Scene তৈরি করা
Scene scene = new Scene(root, 300, 200);
primaryStage.setScene(scene);
primaryStage.setTitle("FXML Example");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
- FXMLLoader:
FXMLLoaderব্যবহার করেMainUI.fxmlফাইলটি লোড করা হয়েছে। - Scene এবং Stage: লোড করা UI উপাদানকে একটি
Sceneএর মধ্যে প্যাকেজ করা হয়েছে এবংStageএ সেট করা হয়েছে।
4. অ্যাপ্লিকেশন চালানো:
উপরের কোডের মাধ্যমে আপনি FXML ব্যবহার করে JavaFX UI তৈরি করেছেন। আপনি যখন অ্যাপ্লিকেশনটি রান করবেন, একটি উইন্ডো খুলবে যেখানে একটি বাটন এবং একটি টেক্সট ফিল্ড থাকবে। যখন আপনি বাটনে ক্লিক করবেন, টেক্সট ফিল্ডে "Hello, JavaFX!" প্রদর্শিত হবে।
FXML ব্যবহারের কিছু গুরুত্বপূর্ণ সুবিধা:
- UI এবং লজিক আলাদা করা: FXML এর মাধ্যমে আপনি UI এবং Java লজিক আলাদা রাখতে পারেন, যা অ্যাপ্লিকেশনকে পরিষ্কার এবং পরিচালনাযোগ্য করে তোলে।
- ডিজাইনার এবং ডেভেলপারদের আলাদা কাজ: FXML এর মাধ্যমে ডিজাইনাররা UI ডিজাইন করতে পারেন এবং ডেভেলপাররা ব্যাকএন্ড কোড লিখতে পারেন, যা কাজের ভারসাম্য বজায় রাখে।
- XML-ভিত্তিক UI ডিজাইন: FXML ব্যবহার করে JavaFX UI XML ফরম্যাটে ডিজাইন করা যায়, যা মান্য এবং অন্যান্য টুলসের সাথে সহজে কাজ করতে সহায়তা করে।
FXML ব্যবহার করার পরামর্শ:
- ভাল কনভেনশন ব্যবহার করুন: FXML ফাইলের মধ্যে প্রোপারটি
fx:idএবংonActionইত্যাদি ব্যবহার করার সময় কনভেনশন মেনে চলুন। এর মাধ্যমে কোডে ভুল কম হবে। - FXML লোডিং অড অপ্টিমাইজ করুন: বড় প্রকল্পের জন্য FXML লোডিং অপ্টিমাইজ করতে সক্ষম হতে পারেন, যেমন
FXMLLoader.load()এ কিছু প্যারামিটার প্রদান করা। - FXML Validation: FXML ফাইলটি সঠিকভাবে তৈরি হয়েছে কিনা তা যাচাই করতে XML ভ্যালিডেটর ব্যবহার করুন।
FXML এবং FXMLLoader ব্যবহার করে JavaFX UI তৈরি করার কৌশলটি UI এবং ব্যাকএন্ড লজিককে আলাদা রাখতে সহায়তা করে এবং অ্যাপ্লিকেশনটিকে পরিষ্কার, সুরক্ষিত এবং পরিচালনাযোগ্য করে তোলে। FXML একটি শক্তিশালী টুল যা ডিজাইনার এবং ডেভেলপারদের আলাদা ভাবে কাজ করার সুযোগ দেয়, এবং JavaFX অ্যাপ্লিকেশন তৈরিতে কার্যকরী।