Data Transfer এবং Clipboard Management

JavaFX তে Drag-and-Drop - জাভাএফএক্স (JavaFx) - Java Technologies

290

JavaFX-এ ফাইল এবং ইমেজ Drag-and-Drop ফিচার ইমপ্লিমেন্ট করার জন্য JavaFX একটি সহজ এবং শক্তিশালী পদ্ধতি প্রদান করে। এই ফিচারটি ইউজারকে ফাইল বা ইমেজ সরাসরি একটি JavaFX অ্যাপ্লিকেশনে টেনে আনার (drag) এবং ফেলানোর (drop) সুযোগ দেয়। এখানে একটি প্র্যাকটিকাল উদাহরণ দেখানো হবে যেটি ফাইল এবং ইমেজ ড্র্যাগ-এন্ড-ড্রপ করতে পারে।

1. JavaFX Drag-and-Drop Example (ফাইল এবং ইমেজ)

নিচে একটি উদাহরণ দেওয়া হল যেখানে একটি StackPane ব্যবহার করা হয়েছে, এবং ব্যবহারকারী ফাইল বা ইমেজ ড্র্যাগ করে এই StackPane-এ ফেলতে পারবেন।

উদাহরণ: ফাইল এবং ইমেজ ড্র্যাগ-এন্ড-ড্রপ

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.StackPane;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
import javafx.scene.input.TransferMode;
import javafx.scene.input.DragEvent;
import javafx.scene.input.Dragboard;
import java.io.File;

public class DragAndDropExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        // একটি StackPane তৈরি করা যা ফাইল বা ইমেজ ড্র্যাগ করার জন্য ব্যবহার হবে
        StackPane root = new StackPane();
        Label label = new Label("Drag and drop a file or image here");
        root.getChildren().add(label);

        // StackPane-এর উপর ড্র্যাগ ইভেন্ট হ্যান্ডলিং যোগ করা
        root.setOnDragOver(event -> {
            // শুধুমাত্র যদি ড্র্যাগড কন্টেন্টটি ফাইল বা ইমেজ হয় তবেই
            Dragboard dragboard = event.getDragboard();
            if (dragboard.hasFiles() || dragboard.hasImage()) {
                event.acceptTransferModes(TransferMode.COPY);
            }
            event.consume();
        });

        // ড্রপ ইভেন্ট হ্যান্ডলিং
        root.setOnDragDropped(event -> {
            Dragboard dragboard = event.getDragboard();
            boolean success = false;
            
            if (dragboard.hasFiles()) {
                // যদি ফাইল ড্র্যাগ করা হয়
                File file = dragboard.getFiles().get(0);
                label.setText("File Dropped: " + file.getName());
                success = true;
            } else if (dragboard.hasImage()) {
                // যদি ইমেজ ড্র্যাগ করা হয়
                Image image = dragboard.getImage();
                ImageView imageView = new ImageView(image);
                imageView.setFitWidth(200);
                imageView.setFitHeight(200);
                root.getChildren().setAll(imageView); // ইমেজ StackPane-এ দেখানো
                success = true;
            }
            event.setDropCompleted(success);
            event.consume();
        });

        // Scene তৈরি এবং সেট করা
        Scene scene = new Scene(root, 400, 300);
        primaryStage.setTitle("Drag and Drop Example");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

এখানে কী হচ্ছে?

  1. StackPane: এখানে একটি StackPane ব্যবহার করা হয়েছে, যা ড্র্যাগ-এন্ড-ড্রপ কন্টেন্ট ধারণ করবে। এটি এককভাবে ড্র্যাগ এবং ড্রপ কন্টেন্ট দেখানোর জন্য আদর্শ।
  2. Label: Label ইউজারকে ড্র্যাগ-এন্ড-ড্রপ নির্দেশনা দেখায়।
  3. DragOver Event: setOnDragOver মেথডে চেক করা হয় যে, ড্র্যাগ করা কন্টেন্টটি ফাইল বা ইমেজ কিনা, এবং যদি হয় তবে কপি মোডে ট্রান্সফার করার অনুমতি দেওয়া হয়।
  4. DragDropped Event: setOnDragDropped মেথডে ইভেন্ট হ্যান্ডলিং করা হয়েছে। যদি ফাইল ড্রপ করা হয় তবে ফাইলের নাম দেখানো হয়, এবং যদি ইমেজ ড্রপ করা হয়, তাহলে ইমেজটি UI-তে দেখানো হয়।

কি কি কাজ করা হচ্ছে:

  • ফাইল ড্র্যাগ করা: ইউজার ফাইল টেনে এনে ড্রপ করলে, ফাইলের নাম Label-এ প্রদর্শিত হবে।
  • ইমেজ ড্র্যাগ করা: যদি ইমেজ ড্র্যাগ করা হয়, তখন ইমেজটি StackPane-এ প্রদর্শিত হবে এবং এর আকার কাস্টমাইজ করা যাবে।

FileChooser ব্যবহার (অফলাইন ফাইল নির্বাচন)

আপনি যদি ফাইল ড্র্যাগ-এন্ড-ড্রপ না করে ফাইল সিলেক্ট করতে চান, তবে FileChooser ব্যবহার করতে পারেন, যা ফাইল নির্বাচন ডায়ালগ খুলে।

FileChooser fileChooser = new FileChooser();
fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("Image Files", "*.png", "*.jpg", "*.gif"));
File selectedFile = fileChooser.showOpenDialog(primaryStage);
if (selectedFile != null) {
    label.setText("File Selected: " + selectedFile.getName());
}

এই কোডটি ফাইল সিলেক্ট করার জন্য ব্যবহার করতে পারেন, যেখানে আপনি ইমেজ ফাইল নির্বাচন করতে পারেন এবং নির্বাচিত ফাইলের নাম প্রদর্শিত হবে।

JavaFX ড্র্যাগ-এন্ড-ড্রপ-এর সুবিধা:

  1. ইউজার-ফ্রেন্ডলি: এটি ব্যবহারকারীদের ইন্টারফেসে ড্র্যাগ-এন্ড-ড্রপ অপারেশন করার সহজ এবং দ্রুত উপায় প্রদান করে।
  2. ইন্টারঅ্যাকটিভ: ব্যবহারকারীরা সহজেই ফাইল বা ইমেজ অ্যাপ্লিকেশনে যুক্ত করতে পারেন, যা অ্যাপ্লিকেশনটিকে আরও ইন্টারেক্টিভ করে তোলে।
  3. অ্যাপ্লিকেশনের ইউজার ইন্টারফেস উন্নত করে: ড্র্যাগ-এন্ড-ড্রপ ফিচার যোগ করলে অ্যাপ্লিকেশনটি আরও আধুনিক এবং আকর্ষণীয় হয়ে ওঠে।

সারাংশ:

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

Content added By
Promotion

Are you sure to start over?

Loading...