import:
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.DataFlavor;


複製到剪貼簿(copy to clipboard):
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
StringSelection data = new StringSelection("Copy string");
clipboard.setContents(data, data);



貼上剪貼簿內容(paste from clipboard):
Transferable pasteData = clipboard.getContents(clipboard);

if (pasteData != null) {
    try {
        if (pasteData.isDataFlavorSupported(DataFlavor.stringFlavor)) {
            String s = (String)(pasteData.getTransferData(DataFlavor.stringFlavor));
            //output s
            }
        } catch (UnsupportedFlavorException ex) {
            ex.printStackTrace();
        } catch (IOException ex1) {
            ex1.printStackTrace();
        }
}

範例(example):
package SwingDemo;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;

import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;

/***
 * 
 * @author Duran
 * 
 * Clipboard Demo
 *
 */
public class ClipboardExample {
 
 private static JFrame frame;
 
    public static void main(String[] args) {
     
     frame = new JFrame("Group Layout Demo");
     frame.setSize(400, 200);
     frame.setResizable(false);
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
     JPanel panel = new JPanel();
     GroupLayout layout = new GroupLayout(panel);
     panel.setLayout(layout);
     layout.setAutoCreateGaps(true);
     layout.setAutoCreateContainerGaps(true);
     
     JLabel lbl1 = new JLabel("lbl1");
     JLabel lbl2 = new JLabel("lbl2");

        final JTextArea tf1 = new JTextArea();
        tf1.setRows(3);
        tf1.setText("copy me");

        
        final JTextArea tf2 = new JTextArea();
        tf2.setRows(3);
        
        //Clipboard example
        final Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();

        JButton jb1 = new JButton("cpoy");
        jb1.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
          //*****************************************************************
          //copy string
          StringSelection data = new StringSelection(tf1.getText());
          clipboard.setContents(data, data);
          //*****************************************************************
         }
        });
        
        JButton jb2 = new JButton("paste");
        jb2.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
          
          //*****************************************************************
          Transferable pasteData = clipboard.getContents(clipboard);
           
          if (pasteData != null) {
              try {
                  if (pasteData.isDataFlavorSupported(DataFlavor.stringFlavor)) {
                   tf2.setText( (String)(pasteData.getTransferData(DataFlavor.stringFlavor)));
                      }
                  } catch (UnsupportedFlavorException ex) {
                      ex.printStackTrace();
                  } catch (IOException ex1) {
                      ex1.printStackTrace();
                  }
          }
          //*****************************************************************
          
         }
        });

        //group layout
  layout.setHorizontalGroup(layout.createSequentialGroup()
   .addGroup(layout.createParallelGroup()
    .addComponent(lbl1)
    .addComponent(lbl2))
   .addGroup(layout.createParallelGroup()
    .addComponent(tf1)
    .addComponent(tf2))
   .addGroup(layout.createParallelGroup()
    .addComponent(jb1)
    .addComponent(jb2))
  );

  layout.setVerticalGroup(layout.createSequentialGroup()
   .addGap(10)
   .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
    .addComponent(lbl1)
    .addComponent(tf1)
    .addComponent(jb1))
    
   .addGap(10)
   .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
    .addComponent(lbl2)
    .addComponent(tf2)
    .addComponent(jb2))
   .addGap(10)

  );
  
  //BorderLayout
  frame.getContentPane().add(BorderLayout.CENTER,panel);

  frame.setVisible(true);

    }
}   




--
如果覺得文章不錯,請幫忙點選廣告,
謝謝!