Java操作系统剪贴板(Clipboard)实现复制和粘贴

来源:互联网 发布:土木工程设计软件 编辑:程序博客网 时间:2024/06/06 04:54

本文链接: http://blog.csdn.net/xietansheng/article/details/70478266

Java 操作剪贴板的类在 java.awt.* 包(及其子包)下,获取系统剪贴板代码:

// 获取系统剪贴板Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();

下面代码实现用 Java 代码获取系统剪贴板对象,实现 复制 和 粘贴 文本:

package com.xiets.clipboard;import java.awt.Toolkit;import java.awt.datatransfer.Clipboard;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.StringSelection;import java.awt.datatransfer.Transferable;public class Main {    public static void main(String[] args) throws InterruptedException {        // 把文本设置到剪贴板(复制)        setClipboardString("Hello System Clipboard!");        // 从剪贴板中获取文本(粘贴)        String text = getClipboardString();        System.out.println("text: " + text);    }    /**     * 把文本设置到剪贴板(复制)     */    public static void setClipboardString(String text) {        // 获取系统剪贴板        Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();        // 封装文本内容        Transferable trans = new StringSelection(text);        // 把文本内容设置到系统剪贴板        clipboard.setContents(trans, null);    }    /**     * 从剪贴板中获取文本(粘贴)     */    public static String getClipboardString() {        // 获取系统剪贴板        Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();        // 获取剪贴板中的内容        Transferable trans = clipboard.getContents(null);        if (trans != null) {            // 判断剪贴板中的内容是否支持文本            if (trans.isDataFlavorSupported(DataFlavor.stringFlavor)) {                try {                    // 获取剪贴板中的文本内容                    String text = (String) trans.getTransferData(DataFlavor.stringFlavor);                    return text;                } catch (Exception e) {                    e.printStackTrace();                }            }        }        return null;    }}

控制台输出:

result-console.png

手动粘贴到其他地方:

result-wx.png


1 0
原创粉丝点击