Clipboard Access এবং Data Transfer

Clipboard এবং Drag-and-Drop ব্যবস্থাপনা - এডাব্লিউটি (AWT) - Java Technologies

274

AWT (Abstract Window Toolkit) এ Clipboard ব্যবহার করে ডেটা ট্রান্সফার করা সম্ভব। Clipboard একটি সিস্টেমের অংশ যা ডেটা সাময়িকভাবে রাখে এবং বিভিন্ন অ্যাপ্লিকেশন বা প্রোগ্রামের মধ্যে শেয়ার করা যায়। এটি সাধারণত কপি-পেস্ট অপারেশনের জন্য ব্যবহৃত হয়।

AWT তে Clipboard ব্যবহারের জন্য Clipboard ক্লাস এবং Transferable ইন্টারফেস ব্যবহার করা হয়।

১. Clipboard Access এবং Data Transfer

১.১. Clipboard ক্লাসের মূল বৈশিষ্ট্য

AWT এ Clipboard ক্লাসটি সিস্টেমের ক্লিপবোর্ডে ডেটা পড়া ও লেখার জন্য ব্যবহৃত হয়। এটি Toolkit এর মাধ্যমে অ্যাক্সেস করা হয়।

২. Clipboard ব্যবহার করার প্রাথমিক ধাপ

  1. ডেটা কপি করা (Put Data on Clipboard) – ডেটা ক্লিপবোর্ডে লেখার জন্য setContents() মেথড ব্যবহার করা হয়।
  2. ডেটা পেস্ট করা (Get Data from Clipboard) – ক্লিপবোর্ড থেকে ডেটা পড়তে getContents() মেথড ব্যবহার করা হয়।

AWT Clipboard ব্যবহারের জন্য Transferable ইন্টারফেস এবং DataFlavor ক্লাসও ব্যবহার করা হয়।

৩. ডেটা কপি ও পেস্ট করার উদাহরণ

৩.১. ডেটা কপি করা (Put Data on Clipboard)

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

import java.awt.*;
import java.awt.datatransfer.*;
import java.io.*;

public class ClipboardExample {
    public static void main(String[] args) {
        String data = "Hello, Clipboard!";  // কপি করা ডেটা

        // ক্লিপবোর্ডে ডেটা রাখার জন্য Transferable অবজেক্ট তৈরি
        StringSelection stringSelection = new StringSelection(data);

        // ক্লিপবোর্ডে ডেটা সেট করা
        Toolkit toolkit = Toolkit.getDefaultToolkit();
        Clipboard clipboard = toolkit.getSystemClipboard();
        clipboard.setContents(stringSelection, null);

        System.out.println("Data copied to clipboard: " + data);
    }
}

ব্যাখ্যা:

  • StringSelection ক্লাস Transferable ইন্টারফেসের একটি বাস্তবায়ন, যা স্ট্রিং ডেটাকে ক্লিপবোর্ডে রাখতে ব্যবহৃত হয়।
  • setContents() মেথডের মাধ্যমে ক্লিপবোর্ডে ডেটা কপি করা হয়।

৩.২. ডেটা পেস্ট করা (Get Data from Clipboard)

এখানে একটি উদাহরণ দেয়া হয়েছে, যেখানে ক্লিপবোর্ড থেকে ডেটা পেস্ট করা হচ্ছে।

import java.awt.*;
import java.awt.datatransfer.*;
import java.io.*;

public class ClipboardExample {
    public static void main(String[] args) {
        try {
            // ক্লিপবোর্ড থেকে ডেটা পড়া
            Toolkit toolkit = Toolkit.getDefaultToolkit();
            Clipboard clipboard = toolkit.getSystemClipboard();
            Transferable contents = clipboard.getContents(null);

            // ডেটা যদি স্ট্রিং হয় তবে সেটি পড়ে দেখানো
            if (contents != null && contents.isDataFlavorSupported(DataFlavor.stringFlavor)) {
                String data = (String) contents.getTransferData(DataFlavor.stringFlavor);
                System.out.println("Data retrieved from clipboard: " + data);
            } else {
                System.out.println("No string data found on clipboard.");
            }
        } catch (UnsupportedFlavorException | IOException e) {
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • getContents() মেথডের মাধ্যমে ক্লিপবোর্ড থেকে ডেটা পাওয়া যায়।
  • isDataFlavorSupported() মেথডের মাধ্যমে ক্লিপবোর্ডে যে ধরনের ডেটা রয়েছে তা যাচাই করা হয়।
  • getTransferData() মেথডের মাধ্যমে নির্দিষ্ট ডেটা প্রকার থেকে ডেটা পাওয়া যায়।

৪. বিভিন্ন ডেটা ফ্লেভার (DataFlavor)

AWT এ DataFlavor একটি ক্লাস যা ডেটার ধরনের (যেমন, টেক্সট, ইমেজ ইত্যাদি) প্রতিনিধিত্ব করে। কিছু প্রচলিত DataFlavor:

  • DataFlavor.stringFlavor – স্ট্রিং ডেটা।
  • DataFlavor.imageFlavor – ইমেজ ডেটা।
  • DataFlavor.javaFileListFlavor – ফাইল তালিকা ডেটা।

৫. উদাহরণ: ফাইল কপি এবং পেস্ট

ক্লিপবোর্ডে ফাইল তালিকা কপি করার উদাহরণ:

import java.awt.*;
import java.awt.datatransfer.*;
import java.io.*;
import java.util.*;

public class ClipboardFileExample {
    public static void main(String[] args) {
        // ফাইলের তালিকা তৈরি
        List<File> files = new ArrayList<>();
        files.add(new File("test1.txt"));
        files.add(new File("test2.txt"));

        // ফাইল তালিকা ক্লিপবোর্ডে কপি করা
        FileListSelection fileListSelection = new FileListSelection(files);
        Toolkit toolkit = Toolkit.getDefaultToolkit();
        Clipboard clipboard = toolkit.getSystemClipboard();
        clipboard.setContents(fileListSelection, null);

        System.out.println("File list copied to clipboard.");
    }
}

class FileListSelection implements Transferable {
    private List<File> files;
    public static DataFlavor fileListFlavor = DataFlavor.javaFileListFlavor;

    public FileListSelection(List<File> files) {
        this.files = files;
    }

    public DataFlavor[] getTransferDataFlavors() {
        return new DataFlavor[] { fileListFlavor };
    }

    public boolean isDataFlavorSupported(DataFlavor flavor) {
        return fileListFlavor.equals(flavor);
    }

    public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException {
        if (fileListFlavor.equals(flavor)) {
            return files;
        }
        throw new UnsupportedFlavorException(flavor);
    }
}

৬. গুরুত্বপূর্ণ ক্লাস এবং মেথড

  • Clipboard: ক্লিপবোর্ডে ডেটা রাখতে এবং পড়তে ব্যবহৃত হয়।
  • Transferable: ডেটা স্থানান্তরের জন্য ব্যবহৃত ইন্টারফেস।
  • StringSelection: স্ট্রিং ডেটা স্থানান্তরের জন্য Transferable ইন্টারফেসের একটি বাস্তবায়ন।
  • DataFlavor: ডেটা ধরনের প্রতিনিধিত্ব করে।

AWT এর ক্লিপবোর্ড অ্যাক্সেস এবং ডেটা ট্রান্সফার ব্যবহারের মাধ্যমে আপনি কপি-পেস্ট অপারেশন বা অন্য কোনো ডেটা স্থানান্তরের কাজ করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...