java操作剪贴板代码示例详解编程语言

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

(0)
上一篇 2021年7月19日 10:39
下一篇 2021年7月19日 10:39

相关推荐

发表回复

登录后才能评论