java操作剪貼板代碼示例

by57 9年前發布 | 2K 次閱讀 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); }

} </pre>

 本文由用戶 by57 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!