import java.awt.datatransfer.*; static class MultiTransferable implements Transferable { new L transferables; public void add(Transferable transferable) { transferables.add(transferable); } public DataFlavor[] getTransferDataFlavors() { List flavors = new ArrayList(); for (Transferable transferable : transferables) flavors.addAll(asList(transferable.getTransferDataFlavors())); return flavors.toArray(new DataFlavor[flavors.size()]); } public boolean isDataFlavorSupported(DataFlavor flavor) { for (Transferable transferable : transferables) if (transferable.isDataFlavorSupported(flavor)) return true; return false; } public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { for (Transferable transferable : transferables) if (transferable.isDataFlavorSupported(flavor)) return transferable.getTransferData(flavor); return null; } }