java.awt.Toolkit类中有个getSystemClipboard()方法来返回一个Clipboard实例的
Toolkit还有个静态方法getDefaultToolkit()返回Toolkit实例
如:
Clipboard cbTmp=Toolkit.getDefaultToolkit().getSystemClipboard();
Clipboard类提供了getContents()和setConntents()方法可以set和取数据
Toolkit还有个静态方法getDefaultToolkit()返回Toolkit实例
如:
Clipboard cbTmp=Toolkit.getDefaultToolkit().getSystemClipboard();
Clipboard类提供了getContents()和setConntents()方法可以set和取数据
import java.awt.event.*;
import javax.swing.*;
import java.awt.datatransfer.*;public class MainFrame extends JFrame {
private JPanel contentPane;
private BorderLayout borderLayout1 = new BorderLayout();
private JTextArea jTextArea1 = new JTextArea();
private JPanel jPanel1 = new JPanel();
private JButton jButton1 = new JButton();
private JButton jButton2 = new JButton(); Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard(); //Construct the frame
public MainFrame() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
//setIconImage(Toolkit.getDefaultToolkit().createImage(MainFrame.class.getResource("[Your Icon]")));
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(borderLayout1);
this.setSize(new Dimension(396, 203));
this.setTitle("JClipboardDemo");
jButton1.setFont(new java.awt.Font("Dialog", 0, 14));
jButton1.setText("Copy");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton1_actionPerformed(e);
}
});
jButton2.setFont(new java.awt.Font("Dialog", 0, 14));
jButton2.setText("Paste");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton2_actionPerformed(e);
}
});
contentPane.add(jTextArea1, BorderLayout.CENTER);
contentPane.add(jPanel1, BorderLayout.SOUTH);
jPanel1.add(jButton1, null);
jPanel1.add(jButton2, null);
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
} void jButton1_actionPerformed(ActionEvent e) { StringSelection ss = new StringSelection(this.jTextArea1.getText());
cb.setContents(ss,ss);
} void jButton2_actionPerformed(ActionEvent e) {
try{
Transferable tr = cb.getContents(this); if (tr != null){
String s = (String) tr.getTransferData(DataFlavor.stringFlavor);
if (s!=null)
this.jTextArea1.insert(s,this.jTextArea1.getCaretPosition());
}
}catch(Exception err){
err.printStackTrace();
} }
}
import javax.swing.UIManager;
import java.awt.*;public class JClipboardDemo {
private boolean packFrame = false; //Construct the application
public JClipboardDemo() {
MainFrame frame = new MainFrame();
//Validate frames that have preset sizes
//Pack frames that have useful preferred size info, e.g. from their layout
if (packFrame) {
frame.pack();
}
else {
frame.validate();
}
//Center the window
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
frame.setVisible(true);
}
//Main method
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e) {
e.printStackTrace();
}
new JClipboardDemo();
}
}