首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Java将文本复制到剪贴板

使用Java将文本复制到剪贴板
EN

Stack Overflow用户
提问于 2011-07-16 00:41:03
回答 5查看 128.8K关注 0票数 165

我想将文本从JTable的单元格复制到剪贴板,以便将其粘贴到其他程序中,例如Microsoft Word。我有来自JTable的文本,但我不确定如何将其复制到剪贴板。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-07-16 05:23:42

这对我来说很有效,而且很简单:

导入以下内容:

代码语言:javascript
复制
import java.awt.datatransfer.StringSelection;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;

然后把这段代码放在你想改变剪贴板的任何地方:

代码语言:javascript
复制
String myString = "This text will be copied into clipboard";
StringSelection stringSelection = new StringSelection(myString);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(stringSelection, null);
票数 313
EN

Stack Overflow用户

发布于 2017-09-22 05:22:42

这是一个公认的答案,用装饰的方式写的:

代码语言:javascript
复制
Toolkit.getDefaultToolkit()
        .getSystemClipboard()
        .setContents(
                new StringSelection(txtMySQLScript.getText()),
                null
        );
票数 28
EN

Stack Overflow用户

发布于 2015-02-03 01:55:23

以下类允许您将字符串复制到剪贴板或从剪贴板粘贴字符串。

代码语言:javascript
复制
import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;

import static java.awt.event.KeyEvent.*;
import static org.apache.commons.lang3.SystemUtils.IS_OS_MAC;

public class SystemClipboard
{
    public static void copy(String text)
    {
        Clipboard clipboard = getSystemClipboard();
        clipboard.setContents(new StringSelection(text), null);
    }

    public static void paste() throws AWTException
    {
        Robot robot = new Robot();

        int controlKey = IS_OS_MAC ? VK_META : VK_CONTROL;
        robot.keyPress(controlKey);
        robot.keyPress(VK_V);
        robot.keyRelease(controlKey);
        robot.keyRelease(VK_V);
    }

    public static String get() throws Exception
    {
        Clipboard systemClipboard = getSystemClipboard();
        DataFlavor dataFlavor = DataFlavor.stringFlavor;

        if (systemClipboard.isDataFlavorAvailable(dataFlavor))
        {
            Object text = systemClipboard.getData(dataFlavor);
            return (String) text;
        }

        return null;
    }

    private static Clipboard getSystemClipboard()
    {
        Toolkit defaultToolkit = Toolkit.getDefaultToolkit();
        return defaultToolkit.getSystemClipboard();
    }
}
票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6710350

复制
相关文章

相似问题

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