- import java.awt.BorderLayout;
- import java.awt.Button;
- import java.awt.Frame;
- import java.awt.Panel;
- import java.awt.TextArea;
- import java.awt.Toolkit;
- import java.awt.datatransfer.DataFlavor;
- import java.awt.datatransfer.StringSelection;
- import java.awt.datatransfer.Transferable;
- import java.awt.datatransfer.UnsupportedFlavorException;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.io.IOException;
- public class ClipdoardUsage {
- public static void main(String[] args) {
- // Create a frame
- Frame frame = new Frame("Example Frame");
- /*
- * Create a container with a flow layout, which arranges its children
- * horizontally and center aligned.
- * A container can also be created with a specific layout using
- * Panel(LayoutManager) constructor, e.g.
- * Panel(new FlowLayout(FlowLayout.RIGHT)) for right alignment
- */
- Panel panel = new Panel();
- // Add a text area in the center of the frame
- final TextArea textArea = new TextArea("This is a sample text...");
- frame.add(textArea, BorderLayout.CENTER);
- // Add several buttons to the container
- Button copyToClipboardButton = new Button("Copy to clipboard");
- Button pasteFromClipboardButton = new Button("Paste from clipboard");
- panel.add(copyToClipboardButton);
- panel.add(pasteFromClipboardButton);
- // Add action listener to copyToClipboardButton for copying textArea content to clipboard
- copyToClipboardButton.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent evt) {
- setStringToClipboard(textArea.getText());
- }
- });
- // Add action listener to pasteFromClipboardButton for pasting clipboard content to textArea
- pasteFromClipboardButton.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent evt) {
- textArea.setText(getStringFromClipboard());
- }
- });
- // Add the container to the bottom of the frame
- frame.add(panel, BorderLayout.SOUTH);
- // Display the frame
- int frameWidth = 300;
- int frameHeight = 300;
- frame.setSize(frameWidth, frameHeight);
- frame.setVisible(true);
- }
- // If a string is on the system clipboard, this method returns it; otherwise it returns null.
- public static String getStringFromClipboard() {
- Transferable transferable = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null);
- try {
- if (transferable != null && transferable.isDataFlavorSupported(DataFlavor.stringFlavor)) {
- String text = (String) transferable.getTransferData(DataFlavor.stringFlavor);
- return text;
- }
- } catch (UnsupportedFlavorException e) {
- System.out.println("Clipboard content flavor is not supported " + e.getMessage());
- } catch (IOException e) {
- System.out.println("Clipboard content could not be retrieved " + e.getMessage());
- }
- return null;
- }
- // This method writes a string to the clipboard.
- public static void setStringToClipboard(String stringContent) {
- StringSelection stringSelection = new StringSelection(stringContent);
- Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);
- }
- }
来源: http://www.phpxs.com/code/1002700/