Java by API/java.awt.datatransfer/Clipboard

Материал из Java эксперт
Перейти к: навигация, поиск

Clipboard: getContents(Object requestor)

   <source lang="java">

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);
 }

}

      </source>
   
  
 
  



Clipboard: setContents(Transferable contents, ClipboardOwner owner)

   <source lang="java">

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);
 }

}

      </source>