Accueil > Java > [DnD] TransferableLabel extends TransferableObject

[DnD] TransferableLabel extends TransferableObject

28/01/2009

package com.pingus.dnd.transferables;

import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
import java.util.ArrayList;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JLabel;

public class TransferableLabel extends TransferableObject {

    public TransferableLabel(final JLabel label, final DataFlavor[] acceptedFlavors, final Transferable defaultTransferableObject) {
        super(label, acceptedFlavors, defaultTransferableObject);
    }

    public TransferableLabel(final JLabel label, final ArrayList acceptedFlavors, final Transferable defaultTransferableObject) {
        super(label, acceptedFlavors, defaultTransferableObject);
    }

    public Object getTransferData(final DataFlavor flavor) throws UnsupportedFlavorException, IOException {
        if(flavor.equals(getPreferredFlavor())) {
            System.out.println("[TransferableLabel] <getTransferData> returning label");
            // Return JLabel
            return this.getObject();
        } else if(flavor.equals(DataFlavor.imageFlavor)) {
            System.out.println("[TransferableLabel] <getTransferData> returning ...");
            // Return Image
            Icon icon = ((JLabel)this.getObject()).getIcon();
            if (icon instanceof ImageIcon) {
                System.out.println("[TransferableLabel] <getTransferData> Image.");
                return ((ImageIcon) icon).getImage();
            }
        } else if(flavor.equals(DataFlavor.stringFlavor)) {
            System.out.println("[TransferableLabel] <getTransferData> returning label text");
            // Return label text
            return ((JLabel)this.getObject()).getText();
        } else if(flavor.equals(DataFlavor.getTextPlainUnicodeFlavor())) {
            return TransferableObject.exportAsInputStream(((JLabel)this.getObject()).getText(), flavor);
        }
        System.out.println("[TransferableLabel] <getTransferData> returning nothing");
        System.out.println("[TransferableLabel] <getTransferData> for flavor "+flavor);
        return super.getTransferData(flavor);
    }
}

Java

Les commentaires sont fermés.