String tx="Jarek Rossignac", xt; void setup() { size(600, 400); PFont font = loadFont("Courier-14.vlw"); textFont(font, 14); xt=invert(tx); } void draw() {background(200); scribe("1 - copy text into the clipboard",0); scribe("2 - click in this window",1); scribe("3 - paste the inverted clipboard",2); scribe(tx+" | "+xt,4);} void mousePressed() {tx=getClipboard(); xt=invert(tx); setClipboard(xt);}; void scribe(String S, int i) {fill(0); text(S,20,20+i*20); noFill();} String invert(String te) {String et=""; for (int i=te.length()-1; i>=0; i--) et=et+te.charAt(i); return et;} import java.awt.Toolkit; import java.awt.datatransfer.*; public static String getClipboard() { // returns content of clipboard (if it contains text) or null Transferable t = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null); try {if (t != null && t.isDataFlavorSupported(DataFlavor.stringFlavor)) { String text = (String)t.getTransferData(DataFlavor.stringFlavor); return text; }} catch (UnsupportedFlavorException e) { } catch (IOException e) { } return null; } public static void setClipboard(String str) { // This method writes a string to the system clipboard. StringSelection ss = new StringSelection(str); Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null); } public void test() {System.out.println(getClipboard()); setClipboard("hello world"); }