উদাহরণ সহ XML এবং JavaFX Integration

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

296

JavaFX এবং XML Integration একটি গুরুত্বপূর্ণ প্রযুক্তিগত দিক, বিশেষত যখন আপনি GUI (Graphical User Interface) অ্যাপ্লিকেশন তৈরি করতে চান যা XML ডেটা পার্স বা ম্যানিপুলেট করে। JavaFX একটি শক্তিশালী গ্রাফিক্যাল ফ্রেমওয়ার্ক, যা Java তে ইউজার ইন্টারফেস তৈরি করার জন্য ব্যবহৃত হয়, এবং XML হল ডেটা বিনিময়ের একটি সাধারণ ফরম্যাট। JavaFX এবং XML এর মধ্যে ইন্টিগ্রেশন আপনাকে ডায়নামিক ইউজার ইন্টারফেস তৈরি করতে সাহায্য করতে পারে, যা XML ডেটা থেকে ইনফরমেশন নিয়ে ডিসপ্লে করতে পারে।

JavaFX এবং XML Integration Overview

JavaFX দিয়ে ইউজার ইন্টারফেস ডিজাইন করতে এবং XML থেকে ডেটা লোড বা সেভ করতে পারলে আপনি অনেক কার্যকর অ্যাপ্লিকেশন তৈরি করতে পারবেন। XML ডেটা এক্সচেঞ্জ করতে XML Parsing এবং Binding ব্যবহৃত হয় এবং JavaFX UI উপাদানগুলির সঙ্গে এই ডেটা দেখানো যায়।

XML Parsing in JavaFX

XML Parsing মানে হল XML ডকুমেন্ট থেকে ডেটা বের করা এবং Java অবজেক্টে রূপান্তর করা। JavaFX এর মধ্যে XML ডেটা লোড করতে JAXB, DOM, বা SAX API ব্যবহার করা যেতে পারে।

JavaFX UI Elements with XML Data

আপনি JavaFX UI উপাদানগুলি (যেমন TextField, Label, TableView) XML ডেটার সাথে ইন্টিগ্রেট করে ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আপনি XML ফাইল থেকে ডেটা লোড করে একটি টেবিলে প্রদর্শন করতে পারেন।

উদাহরণসহ XML এবং JavaFX Integration

ধরা যাক, আপনার একটি XML ফাইল আছে, যা কিছু বইয়ের তথ্য ধারণ করছে এবং আপনি JavaFX ব্যবহার করে সেই ডেটা একটি টেবিলে প্রদর্শন করতে চান।

1. XML ডেটা (bookstore.xml)

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
    <book>
        <title>Java Programming</title>
        <author>John Doe</author>
        <price>39.99</price>
    </book>
    <book>
        <title>Advanced Java</title>
        <author>Jane Smith</author>
        <price>49.99</price>
    </book>
</bookstore>

2. JavaFX Application with XML Parsing

এখন, আমরা JavaFX অ্যাপ্লিকেশন তৈরি করব, যা এই XML ফাইল থেকে বইয়ের তথ্য পড়বে এবং তা টেবিলের মাধ্যমে প্রদর্শন করবে।

Book Class (Model Class)
public class Book {
    private String title;
    private String author;
    private double price;

    public Book(String title, String author, double price) {
        this.title = title;
        this.author = author;
        this.price = price;
    }

    public String getTitle() {
        return title;
    }

    public String getAuthor() {
        return author;
    }

    public double getPrice() {
        return price;
    }
}
FXML and JavaFX Application Code

এটি একটি সাধারণ JavaFX অ্যাপ্লিকেশন যা XML ডেটা থেকে বইয়ের তথ্য লোড করে এবং JavaFX টেবিলে প্রদর্শন করে।

import javafx.application.Application;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.SimpleDoubleProperty;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.File;

public class BookStoreApp extends Application {

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

    @Override
    public void start(Stage primaryStage) throws Exception {
        // TableView setup
        TableView<Book> table = new TableView<>();
        TableColumn<Book, String> titleColumn = new TableColumn<>("Title");
        TableColumn<Book, String> authorColumn = new TableColumn<>("Author");
        TableColumn<Book, Double> priceColumn = new TableColumn<>("Price");

        titleColumn.setCellValueFactory(data -> new SimpleStringProperty(data.getValue().getTitle()));
        authorColumn.setCellValueFactory(data -> new SimpleStringProperty(data.getValue().getAuthor()));
        priceColumn.setCellValueFactory(data -> new SimpleDoubleProperty(data.getValue().getPrice()).asObject());

        table.getColumns().add(titleColumn);
        table.getColumns().add(authorColumn);
        table.getColumns().add(priceColumn);

        // Load data from XML
        File xmlFile = new File("bookstore.xml");
        table.getItems().addAll(loadBooksFromXML(xmlFile));

        StackPane root = new StackPane();
        root.getChildren().add(table);
        Scene scene = new Scene(root, 600, 400);
        primaryStage.setTitle("Book Store");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    private List<Book> loadBooksFromXML(File xmlFile) {
        List<Book> books = new ArrayList<>();
        try {
            // Parse XML file
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document document = builder.parse(xmlFile);
            NodeList bookNodes = document.getElementsByTagName("book");

            for (int i = 0; i < bookNodes.getLength(); i++) {
                Node bookNode = bookNodes.item(i);
                if (bookNode.getNodeType() == Node.ELEMENT_NODE) {
                    Element bookElement = (Element) bookNode;
                    String title = bookElement.getElementsByTagName("title").item(0).getTextContent();
                    String author = bookElement.getElementsByTagName("author").item(0).getTextContent();
                    double price = Double.parseDouble(bookElement.getElementsByTagName("price").item(0).getTextContent());
                    books.add(new Book(title, author, price));
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return books;
    }
}

কোডের ব্যাখ্যা:

  1. XML Parsing: loadBooksFromXML মেথডটি XML ফাইল পার্স করে এবং Book অবজেক্টে ডেটা লোড করে। এখানে DOM Parsing ব্যবহার করা হয়েছে।
  2. TableView: JavaFX TableView ব্যবহার করা হয়েছে XML ডেটা প্রদর্শনের জন্য। TableColumn গুলি নির্ধারণ করা হয়েছে টেবিলের কলাম হিসেবে এবং তাদের মধ্যে XML থেকে পাওয়া ডেটা প্রদর্শিত হবে।
  3. UI Elements: JavaFX TableView ব্যবহার করা হয়েছে যা তিনটি কলাম: Title, Author, এবং Price দিয়ে বইয়ের তথ্য দেখাবে।

কিছু গুরুত্বপূর্ণ JavaFX টেকনিক্যাল ডিটেইলস:

  • Binding: JavaFX এর মধ্যে ডেটা বাইন্ডিং ব্যবহৃত হয় যা UI উপাদান এবং ডেটার মধ্যে সম্পর্ক তৈরি করে। এই উদাহরণে SimpleStringProperty এবং SimpleDoubleProperty ব্যবহার করা হয়েছে বাইন্ডিংয়ের জন্য।
  • FXML: আপনি চাইলে FXML ফাইল ব্যবহার করে UI লেআউট তৈরি করতে পারেন, এবং Java কোডে সেই FXML লোড করে কাজ করতে পারেন। FXML ডাটাবাইন্ডিং এবং কন্ট্রোলার ক্লাসের মাধ্যমে UI এবং ডেটা ইন্টিগ্রেশন সহজ করে তোলে।

এই উদাহরণটি JavaFX এবং XML ইন্টিগ্রেশন এর একটি সাধারণ বিষয়বস্তু তুলে ধরে, যা আপনার অ্যাপ্লিকেশনে XML ডেটা লোড এবং প্রদর্শন করতে সাহায্য করবে। JavaFX এবং XML ইন্টিগ্রেশন অ্যাপ্লিকেশনগুলি ইউজার ইন্টারফেস এবং ডেটার মধ্যে কার্যকরী সম্পর্ক স্থাপন করে, যা ডায়নামিক এবং রিয়েল-টাইম ডেটা প্রদর্শন করে।

Content added By
Promotion

Are you sure to start over?

Loading...