Java cut/copy/paste 的剪贴板
Java Clipboard for cut/copy/paste
我正在使用 Java SWT 剪贴板 Copy/Paste 通过复制属于同一数据类型的多个项目。在这种情况下,当我从剪贴板取回项目时,我总是将第一个匹配的项目放在剪贴板上。
有人可以就此分享他们的 thoughts/opinion 吗?
例如:
我有三个相同数据类型的项目 A
、B
、C
然后当我尝试取回时我总是得到项目 A
.
- 如何解决这个问题?
- 还有其他可以用于copy/paste的剪贴板吗?
clipboard.setContents(new Object[] {data1}, new Transfer[]
{TextTransfer.getInstance()}); clipboard.setContents(new Object[]
{data2}, new Transfer[] {TextTransfer.getInstance()});
尝试检索时:
String data =
(String)clipboard.getContents(TextTransfer.getInstance());
这里总是获取到剪贴板上的data1,如何获取data2?
创建一个包含项目列表的容器对象。然后,您可以将该容器对象的一个实例放入剪贴板,并根据需要从中加载任意数量的项目。
请参阅 Clipboard.setContents 的 javadoc。调用setContents会清除剪贴板中之前的内容。
Javadoc: Place data of the specified type on the system clipboard. More than one type of data can be placed on the system clipboard at the same time. Setting the data clears any previous data from the system clipboard, regardless of type.
javadoc 也有一个示例显示如何在剪贴板上设置不同的传输对象。
Clipboard clipboard = new Clipboard(display);
String textData = "Hello World";
String rtfData = "{\rtf1\b\i Hello World}";
TextTransfer textTransfer = TextTransfer.getInstance();
RTFTransfer rtfTransfer = RTFTransfer.getInstance();
Transfer[] transfers = new Transfer[]{textTransfer, rtfTransfer};
Object[] data = new Object[]{textData, rtfData};
clipboard.setContents(data, transfers);
clipboard.dispose();
我正在使用 Java SWT 剪贴板 Copy/Paste 通过复制属于同一数据类型的多个项目。在这种情况下,当我从剪贴板取回项目时,我总是将第一个匹配的项目放在剪贴板上。 有人可以就此分享他们的 thoughts/opinion 吗?
例如:
我有三个相同数据类型的项目 A
、B
、C
然后当我尝试取回时我总是得到项目 A
.
- 如何解决这个问题?
- 还有其他可以用于copy/paste的剪贴板吗?
clipboard.setContents(new Object[] {data1}, new Transfer[] {TextTransfer.getInstance()}); clipboard.setContents(new Object[] {data2}, new Transfer[] {TextTransfer.getInstance()});
尝试检索时:
String data = (String)clipboard.getContents(TextTransfer.getInstance());
这里总是获取到剪贴板上的data1,如何获取data2?
创建一个包含项目列表的容器对象。然后,您可以将该容器对象的一个实例放入剪贴板,并根据需要从中加载任意数量的项目。
请参阅 Clipboard.setContents 的 javadoc。调用setContents会清除剪贴板中之前的内容。
Javadoc: Place data of the specified type on the system clipboard. More than one type of data can be placed on the system clipboard at the same time. Setting the data clears any previous data from the system clipboard, regardless of type.
javadoc 也有一个示例显示如何在剪贴板上设置不同的传输对象。
Clipboard clipboard = new Clipboard(display);
String textData = "Hello World";
String rtfData = "{\rtf1\b\i Hello World}";
TextTransfer textTransfer = TextTransfer.getInstance();
RTFTransfer rtfTransfer = RTFTransfer.getInstance();
Transfer[] transfers = new Transfer[]{textTransfer, rtfTransfer};
Object[] data = new Object[]{textData, rtfData};
clipboard.setContents(data, transfers);
clipboard.dispose();