Java: String durch die Zwischenablage schubsen

Zum Merken ein kurzer Code-Snippet, mit dem ein String in die Zwischenablage geschoben und wieder herausgeholt werden kann:

package sandbox;

import java.awt.Toolkit;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;

/**
 * @author it-happens.de
 */
public class ClipboardHandler {

 public ClipboardHandler() throws IOException, UnsupportedFlavorException {
      String copyValue = "IT-happens.de";
      copy (copyValue);
      System.out.println("Copy " + copyValue + " ; Paste: " + paste());
 }

 public void copy(String value) {
      //StringSelection ist ein Transferable, welches wiederum vom Clipboard akzeptiert wird
      StringSelection ss = new StringSelection(value);
      Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);
 }

 public String paste() throws IOException, UnsupportedFlavorException {
      //Holen wir das Transferable wieder heraus...
      Transferable contents = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null);
      //Ob das erhaltene Transferable auch einen String beheimatet?
      if (contents != null && contents.isDataFlavorSupported(DataFlavor.stringFlavor) ) {
           //Alles klar, dann gib den String mal her.
           return (String) contents.getTransferData(DataFlavor.stringFlavor);
      }
      return null;
 }

 public static void main (String args[]) throws IOException, UnsupportedFlavorException {
      ClipboardHandler clipboardHandler = new ClipboardHandler();
 }
}
Thumbnails powered by Thumbshots