AWT (Abstract Window Toolkit) ব্যবহার করে Text এবং Image এর জন্য Copy-Paste functionality তৈরি করার জন্য নিচে একটি উদাহরণ দেয়া হয়েছে। এখানে আমরা TextArea এবং Canvas (Image দেখানোর জন্য) ব্যবহার করেছি, এবং তাদের মধ্যে Copy-Paste ফাংশনালিটি যোগ করা হয়েছে।
উদাহরণ কোড:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class CopyPasteExample {
public static void main(String[] args) {
// Frame তৈরি
Frame frame = new Frame("AWT Copy-Paste Functionality");
frame.setSize(600, 600);
frame.setLayout(new FlowLayout());
// Text Area তৈরি (Text Copy-Paste এর জন্য)
TextArea textArea = new TextArea(10, 50);
frame.add(textArea);
// Button to Copy Text
Button copyTextButton = new Button("Copy Text");
frame.add(copyTextButton);
// Button to Paste Text
Button pasteTextButton = new Button("Paste Text");
frame.add(pasteTextButton);
// Button to Copy Image
Button copyImageButton = new Button("Copy Image");
frame.add(copyImageButton);
// Canvas for displaying Image (Image Copy-Paste এর জন্য)
Canvas imageCanvas = new Canvas() {
public void paint(Graphics g) {
Image img = Toolkit.getDefaultToolkit().getImage("image.jpg"); // Image path
g.drawImage(img, 0, 0, this);
}
};
imageCanvas.setSize(200, 200);
frame.add(imageCanvas);
// Clipboard object to store and retrieve clipboard data
final Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
// Copy Text functionality
copyTextButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String textToCopy = textArea.getText();
StringSelection selection = new StringSelection(textToCopy);
clipboard.setContents(selection, null);
}
});
// Paste Text functionality
pasteTextButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
Transferable content = clipboard.getContents(null);
if (content != null && content.isDataFlavorSupported(DataFlavor.stringFlavor)) {
String text = (String) content.getTransferData(DataFlavor.stringFlavor);
textArea.setText(text);
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
// Copy Image functionality (Image from Canvas)
copyImageButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Image image = Toolkit.getDefaultToolkit().getImage("image.jpg"); // Image path
ImageTransferable imageTransferable = new ImageTransferable(image);
clipboard.setContents(imageTransferable, null);
}
});
// Frame close operation
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
frame.dispose();
}
});
// Frame Visible করা
frame.setVisible(true);
}
}
// Image Transferable class for handling image data
class ImageTransferable implements Transferable {
private Image image;
public ImageTransferable(Image image) {
this.image = image;
}
public DataFlavor[] getTransferDataFlavors() {
return new DataFlavor[]{DataFlavor.imageFlavor};
}
public boolean isDataFlavorSupported(DataFlavor flavor) {
return flavor.equals(DataFlavor.imageFlavor);
}
public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {
if (flavor.equals(DataFlavor.imageFlavor)) {
return image;
} else {
throw new UnsupportedFlavorException(flavor);
}
}
}
কোড ব্যাখ্যা:
- Text Area:
- TextArea ব্যবহার করা হয়েছে যেখানে ব্যবহারকারী টেক্সট লিখতে এবং কপি-পেস্ট করতে পারবেন।
- Canvas (Image):
- Canvas ব্যবহার করা হয়েছে যেখানে একটি ছবি প্রদর্শন করা হবে (এই ক্ষেত্রে
"image.jpg"নামক একটি ইমেজ ব্যবহার করা হয়েছে, তবে আপনি আপনার ইমেজের পাথ এখানে দিতে পারেন)।
- Canvas ব্যবহার করা হয়েছে যেখানে একটি ছবি প্রদর্শন করা হবে (এই ক্ষেত্রে
- Copy and Paste Functionality:
- Copy Text:
StringSelectionক্লাস ব্যবহার করে টেক্সট কপি করা হচ্ছে এবং সেটি ক্লিপবোর্ডে সংরক্ষণ করা হচ্ছে। - Paste Text: ক্লিপবোর্ড থেকে টেক্সট ফিরিয়ে এনে TextArea-তে পেস্ট করা হচ্ছে।
- Copy Image:
ImageTransferableক্লাস ব্যবহার করে ইমেজ কপি করা হচ্ছে। এর মাধ্যমে একটি ইমেজ ক্লিপবোর্ডে কপি করা যায়।
- Copy Text:
- Clipboard:
- Toolkit.getDefaultToolkit().getSystemClipboard() ব্যবহার করে ক্লিপবোর্ডের মধ্যে কনটেন্ট রাখা এবং বের করা হচ্ছে।
- ImageTransferable Class:
- ইমেজ ক্লিপবোর্ডে কপি করার জন্য একটি কাস্টম Transferable ক্লাস তৈরি করা হয়েছে যেটি ইমেজ কনটেন্ট হ্যান্ডল করে।
আউটপুট:
- একটি GUI উইন্ডো তৈরি হবে যেখানে TextArea, Copy Text, Paste Text, Copy Image বাটন থাকবে।
- Copy Text বাটন ক্লিক করলে টেক্সট ক্লিপবোর্ডে কপি হবে এবং Paste Text বাটন ক্লিক করলে সেই টেক্সট TextArea তে পেস্ট হবে।
- Copy Image বাটন ক্লিক করলে নির্দিষ্ট ইমেজ ক্লিপবোর্ডে কপি হবে।
এটি AWT ব্যবহার করে Text এবং Image এর জন্য Copy-Paste ফাংশনালিটি তৈরি করার একটি উদাহরণ।
Content added By
Read more