Java Reference
In-Depth Information
if (t.isDataFlavorSupported(flavors[0])) {
try {
image = (Image)t.getTransferData(flavors[0]);
ImageIcon icon = new ImageIcon(image);
button.setIcon(icon);
return true;
} catch (UnsupportedFlavorException ignored) {
} catch (IOException ignored) {
}
}
}
return false;
}
Putting all this code together with the three methods implemented for the Transferable
interface produces Listing 19-3.
Listing 19-3. Implementing a Draggable Image
import java.awt.*;
import java.awt.image.*;
import java.awt.datatransfer.*;
import java.io.*;
import javax.swing.*;
public class ImageSelection extends TransferHandler
implements Transferable {
private static final DataFlavor flavors[] = {DataFlavor.imageFlavor};
private Image image;
public int getSourceActions(JComponent c) {
return TransferHandler.COPY;
}
public boolean canImport(JComponent comp, DataFlavor flavor[]) {
if (!(comp instanceof JLabel) && !(comp instanceof AbstractButton)) {
return false;
}
for (int i=0, n=flavor.length; i<n; i++) {
for (int j=0, m=flavors.length; j<m; j++) {
if (flavor[i].equals(flavors[j])) {
return true;
}
}
}
Search WWH ::




Custom Search