在我们的项目中,我正在开发一个简单的函数,可以将数据复制到剪贴板,然后在其他地方使用。这很简单。模态窗口弹出并在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 });
文件导出完成后,按钮会被激活。复制到剪贴板和使用数据是有效的,但只有当我点击此按钮并首先将此数据粘贴到任何位置时才有效。如果我现在点击“确定”并关闭窗口,则数据仍然在剪贴板中。
但是,如果我点击“复制”按钮,然后直接点击“确定”,而不将此数据粘贴到任何位置,则该数据将从剪贴板中丢失。
是否有任何方法可以无论如何保留剪贴板中的数据?