Duplicate :
|
|
Duplicate :
|
|
Relates :
|
|
Relates :
|
Run the following sample: ------------------------------ import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.SystemFlavorMap; import java.io.IOException; import java.io.Reader; import javax.swing.JLabel; import javax.swing.TransferHandler; public class ConstructFlavoredObjectTest { private static final String TEST_MIME_TYPE = "text/plain;class=" + MyStringReader.class.getName(); public static void main(String[] args) throws Exception { final DataFlavor dataFlavor = new DataFlavor(TEST_MIME_TYPE); SystemFlavorMap systemFlavorMap = (SystemFlavorMap) SystemFlavorMap. getDefaultFlavorMap(); systemFlavorMap.addUnencodedNativeForFlavor(dataFlavor, "TEXT"); systemFlavorMap.addFlavorForUnencodedNative("TEXT", dataFlavor); TransferHandler transferHandler = new TransferHandler("Test Handler"); Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); transferHandler.exportToClipboard(new JLabel("Test"), clipboard, TransferHandler.COPY); Object clipboardData = clipboard.getData(dataFlavor); System.out.println("clipboardData: " + clipboardData); if (!(clipboardData instanceof MyStringReader)) { throw new RuntimeException("Wrong clipboard data!"); } } public static class MyStringReader extends Reader { public MyStringReader(Reader reader) { } @Override public int read(char[] cbuf, int off, int len) throws IOException { throw new UnsupportedOperationException("Not supported yet."); } @Override public void close() throws IOException { throw new UnsupportedOperationException("Not supported yet."); } } } ------------------------------ The following exception is thrown from time to time: Exception in thread "main" java.awt.datatransfer.UnsupportedFlavorException: text/plain at sun.awt.datatransfer.SunClipboard.getData(SunClipboard.java:215) at datatransfer.ConstructFlavoredObjectTestPrev.main(ConstructFlavoredObjectTestPrev.java:30) Java Result: 1
|