首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java中复制到剪贴板

在Java中复制到剪贴板
EN

Stack Overflow用户
提问于 2010-08-29 02:32:25
回答 5查看 85.8K关注 0票数 78

我想在Java控制台应用程序中将用户的剪贴板设置为一个字符串。有什么想法吗?

EN

回答 5

Stack Overflow用户

发布于 2010-08-29 02:54:44

使用Toolkit获取system clipboard。使用String创建一个StringSelection并将其添加到Clipboard

简化版:

StringSelection selection = new StringSelection(theString);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(selection, selection);
票数 142
EN

Stack Overflow用户

发布于 2010-08-29 03:44:35

下面是一个简单的SSCCE来实现这一点:

import java.awt.*;
import java.awt.datatransfer.*;
import java.io.*;

class ClipboardTest
{
    public static void main(String[] args)
        throws UnsupportedFlavorException, IOException
    {
        Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
        StringSelection testData;

        //  Add some test data

        if (args.length > 0)
            testData = new StringSelection( args[0] );
        else
            testData = new StringSelection( "Test Data" );

        c.setContents(testData, testData);

        //  Get clipboard contents, as a String

        Transferable t = c.getContents( null );

        if ( t.isDataFlavorSupported(DataFlavor.stringFlavor) )
        {
            Object o = t.getTransferData( DataFlavor.stringFlavor );
            String data = (String)t.getTransferData( DataFlavor.stringFlavor );
            System.out.println( "Clipboard contents: " + data );
        }

        System.exit(0);
    }
}
票数 32
EN

Stack Overflow用户

发布于 2018-01-10 19:58:02

如果有人还在寻找JavaFX的方法来完成这篇文章,你可以在这里找到:

ClipboardContent content = new ClipboardContent();
content.putString("Some text");
content.putHtml("<b>Bold</b> text");
Clipboard.getSystemClipboard().setContent(content);

有关更多信息,请访问read the documentation

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3591945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档