java - 如何在 Java 中进行剪切复制粘贴

标签 java clipboard

<分区>

我想制作一个可以访问剪贴板以执行剪切、复制和粘贴等功能的 java 程序。如果有人愿意帮助我提供示例代码,那将非常有帮助...... 谢谢!

最佳答案

     /**
     * get string from Clipboard
     */
    public static String getSysClipboardText() {
        String ret = "";
        Clipboard sysClip = Toolkit.getDefaultToolkit().getSystemClipboard();

        Transferable clipTf = sysClip.getContents(null);

        if (clipTf != null) {

            if (clipTf.isDataFlavorSupported(DataFlavor.stringFlavor)) {
                try {
                    ret = (String) clipTf
                            .getTransferData(DataFlavor.stringFlavor);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }

        return ret;
    }

    /**
     * put string into Clipboard
     */
    public static void setSysClipboardText(String writeMe) {
        Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
        Transferable tText = new StringSelection(writeMe);
        clip.setContents(tText, null);
    }

    /**
     * get image from Clipboard
     */
    public static Image getImageFromClipboard() throws Exception {
        Clipboard sysc = Toolkit.getDefaultToolkit().getSystemClipboard();
        Transferable cc = sysc.getContents(null);
        if (cc == null)
            return null;
        else if (cc.isDataFlavorSupported(DataFlavor.imageFlavor))
            return (Image) cc.getTransferData(DataFlavor.imageFlavor);
        return null;
    }

    /**
     * put iamge into Clipboard
     */
    public static void setClipboardImage(final Image image) {
        Transferable trans = new Transferable() {
            public DataFlavor[] getTransferDataFlavors() {
                return new DataFlavor[] { DataFlavor.imageFlavor };
            }

            public boolean isDataFlavorSupported(DataFlavor flavor) {
                return DataFlavor.imageFlavor.equals(flavor);
            }

            public Object getTransferData(DataFlavor flavor)
                    throws UnsupportedFlavorException, IOException {
                if (isDataFlavorSupported(flavor))
                    return image;
                throw new UnsupportedFlavorException(flavor);
            }

        };
        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(trans,
                null);
    }

如果您想处理文件或文件夹,您可以尝试

 copyFile(srcPath, destDir, true/**overwriteExistFile*/);    

 copyDirectory(srcPath, destDir, true/**overwriteExistDir*/);

关于java - 如何在 Java 中进行剪切复制粘贴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20174462/

相关文章:

java - Project Euler 12,Java解决方案尝试,递归错误?

java - 无法在类 org.apache.logging.log4j.core.layout.JsonLayout 中为元素 JsonLayout 调用工厂方法

java - 将 itextpdf 库添加到 Eclipse

java - 图像不会保留在 Java 的 JTextPane 中

linux - 回声 "string"| xclip -selection clipboard ,复制 'string' 但也添加了一个新行。如何解决这个问题?

c++ - 将 ListBox 复制到剪贴板,返回不保存的载体

java - instanceof 和 Class.isAssignableFrom(...) 有什么区别?

macos - 我可以通过管道将 tmux 缓冲区传输到 pbcopy 吗?

windows - 剪贴板大小限制

java - 如何使用 Java Stream 将 List<Src> 映射到对象 Tgt?