AWT (Abstract Window Toolkit) এ Clipboard ব্যবহার করে ডেটা ট্রান্সফার করা সম্ভব। Clipboard একটি সিস্টেমের অংশ যা ডেটা সাময়িকভাবে রাখে এবং বিভিন্ন অ্যাপ্লিকেশন বা প্রোগ্রামের মধ্যে শেয়ার করা যায়। এটি সাধারণত কপি-পেস্ট অপারেশনের জন্য ব্যবহৃত হয়।
AWT তে Clipboard ব্যবহারের জন্য Clipboard ক্লাস এবং Transferable ইন্টারফেস ব্যবহার করা হয়।
১. Clipboard Access এবং Data Transfer
১.১. Clipboard ক্লাসের মূল বৈশিষ্ট্য
AWT এ Clipboard ক্লাসটি সিস্টেমের ক্লিপবোর্ডে ডেটা পড়া ও লেখার জন্য ব্যবহৃত হয়। এটি Toolkit এর মাধ্যমে অ্যাক্সেস করা হয়।
২. Clipboard ব্যবহার করার প্রাথমিক ধাপ
- ডেটা কপি করা (Put Data on Clipboard) – ডেটা ক্লিপবোর্ডে লেখার জন্য
setContents()মেথড ব্যবহার করা হয়। - ডেটা পেস্ট করা (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 এর ক্লিপবোর্ড অ্যাক্সেস এবং ডেটা ট্রান্সফার ব্যবহারের মাধ্যমে আপনি কপি-পেস্ট অপারেশন বা অন্য কোনো ডেটা স্থানান্তরের কাজ করতে পারেন।
Read more