Accueil > Java > [DnD] TransferableLabel extends TransferableObject

[DnD] TransferableLabel extends TransferableObject

28/01/2009
  1. package com.pingus.dnd.transferables;  
  2.   
  3. import java.awt.datatransfer.DataFlavor;  
  4. import java.awt.datatransfer.Transferable;  
  5. import java.awt.datatransfer.UnsupportedFlavorException;  
  6. import java.io.IOException;  
  7. import java.util.ArrayList;  
  8.   
  9. import javax.swing.Icon;  
  10. import javax.swing.ImageIcon;  
  11. import javax.swing.JLabel;  
  12.   
  13. public class TransferableLabel extends TransferableObject {  
  14.   
  15.     public TransferableLabel(final JLabel label, final DataFlavor[] acceptedFlavors, final Transferable defaultTransferableObject) {  
  16.         super(label, acceptedFlavors, defaultTransferableObject);  
  17.     }  
  18.   
  19.     public TransferableLabel(final JLabel label, final ArrayList acceptedFlavors, final Transferable defaultTransferableObject) {  
  20.         super(label, acceptedFlavors, defaultTransferableObject);  
  21.     }  
  22.   
  23.     public Object getTransferData(final DataFlavor flavor) throws UnsupportedFlavorException, IOException {  
  24.         if(flavor.equals(getPreferredFlavor())) {  
  25.             System.out.println("[TransferableLabel] <getTransferData> returning label");  
  26.             // Return JLabel  
  27.             return this.getObject();  
  28.         } else if(flavor.equals(DataFlavor.imageFlavor)) {  
  29.             System.out.println("[TransferableLabel] <getTransferData> returning ...");  
  30.             // Return Image  
  31.             Icon icon = ((JLabel)this.getObject()).getIcon();  
  32.             if (icon instanceof ImageIcon) {  
  33.                 System.out.println("[TransferableLabel] <getTransferData> Image.");  
  34.                 return ((ImageIcon) icon).getImage();  
  35.             }  
  36.         } else if(flavor.equals(DataFlavor.stringFlavor)) {  
  37.             System.out.println("[TransferableLabel] <getTransferData> returning label text");  
  38.             // Return label text  
  39.             return ((JLabel)this.getObject()).getText();  
  40.         } else if(flavor.equals(DataFlavor.getTextPlainUnicodeFlavor())) {  
  41.             return TransferableObject.exportAsInputStream(((JLabel)this.getObject()).getText(), flavor);  
  42.         }  
  43.         System.out.println("[TransferableLabel] <getTransferData> returning nothing");  
  44.         System.out.println("[TransferableLabel] <getTransferData> for flavor "+flavor);  
  45.         return super.getTransferData(flavor);  
  46.     }  
  47. }  

Java

Les commentaires sont fermés.