给个演示程序你吧(不过,文本框等组件都支持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);
}
}