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); } }
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/11045.html