Mega Code Archive

 
Categories / Java by API / Java Awt Datatransfer
 

Clipboard

import java.awt.Button; import java.awt.Frame; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.TextArea; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.ClipboardOwner; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.StringSelection; import java.awt.datatransfer.Transferable; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; /** Taken from the Sun documentation on Clipboard API */ public class MainClass extends Frame implements ClipboardOwner, ActionListener {   TextArea srcText, dstText;   Button copyButton, pasteButton;   Clipboard clipboard = getToolkit().getSystemClipboard();   public MainClass() {     super("Clipboard Test");     GridBagLayout gridbag = new GridBagLayout();     GridBagConstraints c = new GridBagConstraints();     setLayout(gridbag);     srcText = new TextArea(8, 32);     c.gridwidth = 2;     c.anchor = GridBagConstraints.CENTER;     gridbag.setConstraints(srcText, c);     add(srcText);     copyButton = new Button("Copy Above");     copyButton.setActionCommand("copy");     copyButton.addActionListener(this);     c.gridy = 1;     c.gridwidth = 1;     gridbag.setConstraints(copyButton, c);     add(copyButton);     pasteButton = new Button("Paste Below");     pasteButton.setActionCommand("paste");     pasteButton.addActionListener(this);     pasteButton.setEnabled(false);     c.gridx = 1;     gridbag.setConstraints(pasteButton, c);     add(pasteButton);     dstText = new TextArea(8, 32);     c.gridx = 0;     c.gridy = 2;     c.gridwidth = 2;     gridbag.setConstraints(dstText, c);     add(dstText);     pack();   }   public void actionPerformed(ActionEvent evt) {     String cmd = evt.getActionCommand();     if (cmd.equals("copy")) {       // Implement Copy operation       String srcData = srcText.getText();       if (srcData != null) {         StringSelection contents = new StringSelection(srcData);         clipboard.setContents(contents, this);         pasteButton.setEnabled(true);       }     } else if (cmd.equals("paste")) {       // Implement Paste operation       Transferable content = clipboard.getContents(this);       if (content != null) {         try {           String dstData = (String) content.getTransferData(DataFlavor.stringFlavor);           dstText.append(dstData);         } catch (Exception e) {           System.out.println("Couldn't get contents in format: "               + DataFlavor.stringFlavor.getHumanPresentableName());         }       }     }   }   public void lostOwnership(Clipboard clipboard, Transferable contents) {     System.out.println("Clipboard contents replaced");   }   public static void main(String[] args) {     MainClass test = new MainClass();     test.setVisible(true);   } }