给个演示程序你吧(不过,文本框等组件都支持ctrl-c,ctrl-v等的。这里只是演示)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.datatransfer.*;
import java.io.IOException;
public class ClipboardDemo
{
  public static void main (String args[])
  {
  final Clipboard clipboard =Toolkit.getDefaultToolkit().getSystemClipboard();
  final JFrame f = new JFrame ("Clip It");
  Container c = f.getContentPane();
  final JTextArea jt = new JTextArea();
  JScrollPane pane = new JScrollPane (jt);
  final JPopupMenu popmenu=new JPopupMenu("Copy/Paste");  JMenuItem copyMenu=new JMenuItem("Copy");
  JMenuItem pasteMenu=new JMenuItem("Paste");
  popmenu.add(copyMenu);
  popmenu.add(pasteMenu);
  copyMenu.addActionListener(new ActionListener()
                             {
                               public void actionPerformed(ActionEvent e)
                               {
                                 String selection = jt.getSelectedText();
                                 StringSelection data = new StringSelection(selection);
                                 clipboard.setContents (data, data);
                                 popmenu.setVisible(false);
                               }
                             });
  pasteMenu.addActionListener(new ActionListener()
                              {
                                public void actionPerformed (ActionEvent e)
                                {
                                  Transferable clipData = clipboard.getContents(clipboard);
                                  if (clipData != null)
                                  {
                                    try
                                    {
                                      String s = (String)(clipData.getTransferData(DataFlavor.stringFlavor));
                                      jt.replaceSelection (s);
                                    }
                                    catch (UnsupportedFlavorException ee){System.err.println ("Unsupported flavor:" + ee);        }
                                    catch (IOException ee) {System.err.println ("Unable to get data:" + ee);}
                                  }
                                  popmenu.setVisible(false);
                                }
                              });
  jt.addMouseListener(new MouseAdapter()
                      {
                        public void mouseClicked(MouseEvent e)
                        {
                          popmenu.setLocation(f.getX()+e.getX(),f.getY()+e.getY());
                          popmenu.setVisible(true);
                        }
                      });
  f.addWindowListener (new WindowAdapter()
  {
    public void windowClosing (WindowEvent e) { System.exit (0); }
  });
  c.add (pane, BorderLayout.CENTER);
  JButton copy = new JButton ("Copy");
  copy.addActionListener (new ActionListener()
  {
    public void actionPerformed (ActionEvent e) {
      String selection = jt.getSelectedText();
      StringSelection data = new StringSelection(selection);
      clipboard.setContents (data, data);
    }
  });
  JButton paste = new JButton ("Paste");
  paste.addActionListener (new ActionListener()
  {
    public void actionPerformed (ActionEvent e) {
      Transferable clipData = clipboard.getContents
       (clipboard);
      if (clipData != null) {
        try {
          String s = (String)(clipData.getTransferData
           (
            DataFlavor.stringFlavor));
          jt.replaceSelection (s);
        }
        catch (UnsupportedFlavorException ee){System.err.println ("Unsupported flavor:" + ee);        }
        catch (IOException ee) {System.err.println ("Unable to get data:" + ee);}
      }
    }
  });
  JPanel p = new JPanel();
  p.add (copy);
  p.add (paste);
  c.add (p, BorderLayout.SOUTH);
  f.setSize (300, 300);
  f.setVisible (true);
}
}