Clipboard.
In Java, there are actually two kinds of Clipboard - system
and local. The following example uses the system Clipboard.
It corresponds to the usual idea of sharing data between otherwise independent
applications running on the same computer.
Local Clipboards are visible only within a single Java
application. They are created by simply passing a name to
the Clipboard
constructor.
import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.ClipboardOwner; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.StringSelection; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.UnsupportedFlavorException; import java.awt.Toolkit; import java.io.*; public final class TextTransfer implements ClipboardOwner { /** Simple test harness. */ public static void main(String... args){ TextTransfer textTransfer = new TextTransfer(); //display what is currently on the clipboard log("Clipboard contains:" + textTransfer.getClipboardContents()); //change the contents and then re-display textTransfer.setClipboardContents("blah, blah, blah"); log("Clipboard contains:" + textTransfer.getClipboardContents()); } /** * Empty implementation of the ClipboardOwner interface. */ @Override public void lostOwnership(Clipboard clipboard, Transferable contents){ //do nothing } /** * Place a String on the clipboard, and make this class the * owner of the Clipboard's contents. */ public void setClipboardContents(String string){ StringSelection stringSelection = new StringSelection(string); Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); clipboard.setContents(stringSelection, this); } /** * Get the String residing on the clipboard. * * @return any text found on the Clipboard; if none found, return an * empty String. */ public String getClipboardContents() { String result = ""; Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); //odd: the Object param of getContents is not currently used Transferable contents = clipboard.getContents(null); boolean hasTransferableText = (contents != null) && contents.isDataFlavorSupported(DataFlavor.stringFlavor) ; if (hasTransferableText) { try { result = (String)contents.getTransferData(DataFlavor.stringFlavor); } catch (UnsupportedFlavorException | IOException ex){ System.out.println(ex); ex.printStackTrace(); } } return result; } private static void log(String msg) { System.out.println(msg); } }
>java -cp . TextTransfer
Clipboard contains:Java is in Indonesia.
Clipboard contains:blah, blah, blah
>