3

在我们的项目中,我正在开发一个简单的功能,它可以将数据复制到剪贴板,然后在其他任何地方使用。这很简单。一个模态窗口弹出并在 SWT.List 中显示该函数导出的所有文件的列表。此窗口还有两个按钮:“确定”和“复制到剪贴板”。OK 按钮通过 shell.dispose() 关闭窗口(我什至尝试过 Shell.close())。剪贴板功能如下所示:

Clipboard clipboard = new Clipboard(Display.getDefault());
TextTransfer transfer = TextTransfer.getInstance();
String lines = "";
for (String line : list.getItems())
{
    lines += line;
    lines +="\n";
}
clipboard.setContents(new Object[] { lines }, new TextTransfer[] { transfer });

文件导出完成后,按钮被激活。复制到剪贴板并使用数据是有效的,但前提是我单击此按钮并首先将此数据粘贴到任何地方。如果我现在单击“确定”并关闭窗口,则数据仍在剪贴板中。但是,如果我单击“复制”按钮,然后直接“确定”而不将这些数据粘贴到任何地方,它就会从剪贴板中丢失。

有没有办法将数据保存在剪贴板中?

4

1 回答 1

3

也许您需要在设置内容后直接处理剪贴板?也就是说,当您不再需要使用 Clipboard 实例时,将其丢弃,如 Clipboard 类 javadoc 中所述。不确定它是否有帮助,但您可以尝试...另请参阅http://www.vogella.com/blog/2009/09/04/swt-clipboard/

于 2012-07-24T10:43:25.310 回答