Copying to the clipboard in Java [duplicate]
Use the Toolkit
to get the system clipboard. Create a StringSelection
with the String
and add it to the Clipboard
.
Simplified:
StringSelection selection = new StringSelection(theString);Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();clipboard.setContents(selection, selection);
Here is a simple SSCCE to accomplish this:
import java.awt.*;import java.awt.datatransfer.*;import java.io.*;class ClipboardTest{ public static void main(String[] args) throws UnsupportedFlavorException, IOException { Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard(); StringSelection testData; // Add some test data if (args.length > 0) testData = new StringSelection( args[0] ); else testData = new StringSelection( "Test Data" ); c.setContents(testData, testData); // Get clipboard contents, as a String Transferable t = c.getContents( null ); if ( t.isDataFlavorSupported(DataFlavor.stringFlavor) ) { Object o = t.getTransferData( DataFlavor.stringFlavor ); String data = (String)t.getTransferData( DataFlavor.stringFlavor ); System.out.println( "Clipboard contents: " + data ); } System.exit(0); }}
For anyone still stumbling upon this post searching for the JavaFX way to accomplish this, here you go:
ClipboardContent content = new ClipboardContent();content.putString("Some text");content.putHtml("<b>Bold</b> text");Clipboard.getSystemClipboard().setContent(content);
For further information, read the documentation.