Text এবং Image এর জন্য Copy-Paste Functionality

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

322

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);
        }
    }
}

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

  1. Text Area:
    • TextArea ব্যবহার করা হয়েছে যেখানে ব্যবহারকারী টেক্সট লিখতে এবং কপি-পেস্ট করতে পারবেন।
  2. Canvas (Image):
    • Canvas ব্যবহার করা হয়েছে যেখানে একটি ছবি প্রদর্শন করা হবে (এই ক্ষেত্রে "image.jpg" নামক একটি ইমেজ ব্যবহার করা হয়েছে, তবে আপনি আপনার ইমেজের পাথ এখানে দিতে পারেন)।
  3. Copy and Paste Functionality:
    • Copy Text: StringSelection ক্লাস ব্যবহার করে টেক্সট কপি করা হচ্ছে এবং সেটি ক্লিপবোর্ডে সংরক্ষণ করা হচ্ছে।
    • Paste Text: ক্লিপবোর্ড থেকে টেক্সট ফিরিয়ে এনে TextArea-তে পেস্ট করা হচ্ছে।
    • Copy Image: ImageTransferable ক্লাস ব্যবহার করে ইমেজ কপি করা হচ্ছে। এর মাধ্যমে একটি ইমেজ ক্লিপবোর্ডে কপি করা যায়।
  4. Clipboard:
    • Toolkit.getDefaultToolkit().getSystemClipboard() ব্যবহার করে ক্লিপবোর্ডের মধ্যে কনটেন্ট রাখা এবং বের করা হচ্ছে।
  5. 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
Promotion

Are you sure to start over?

Loading...