1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
package monpackage;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.JPanel;
import javax.swing.TransferHandler;
public class ComposantTransferable extends JPanel implements Transferable{
private DataFlavor img=new DataFlavor("image/png",null);
public Composant composant;
public ComposantTransferable(Composant c)
{
setTransferHandler(new ComposantTransfertHandler());
composant=c;
}
public void enableDrag(){
addMouseListener(new DragAndDropListener());
}
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(composant.image, composant.x, composant.y,100,100,null);
setPreferredSize(new Dimension(100,100));
addMouseListener(new DragAndDropListener());
}
@Override
public Object getTransferData(DataFlavor arg0)
throws UnsupportedFlavorException, IOException {
if(ComposantFlavor.getComposantFlavor().equals(arg0))
{
return composant;
}
else throw new UnsupportedFlavorException(arg0);
}
@Override
public DataFlavor[] getTransferDataFlavors() {
ArrayList l= new ArrayList();
l.add(ComposantFlavor.getComposantFlavor());
l.add(img);
return (DataFlavor[]) l.toArray(new DataFlavor[l.size()]);
}
@Override
public boolean isDataFlavorSupported(DataFlavor arg0) {
// TODO Auto-generated method stub
return ComposantFlavor.getComposantFlavor().equals(arg0);
}
} |