在此将说明swt中提供的复制粘贴功能.

*相关类介绍

1.org.eclipse.swt.dnd.Clipboard

setContents(Object[] data, Transfer[] dataTypes, int clipboards)向黏贴板上复制内容.

getContents(Transfer transfer, int clipboards)根据transfer从对应的黏贴板上获取内容.

注意:data和dataTypes是一一对应关系,若data不符合dataTypes的格式要求,会抛出异常DND.error(SWT.ERROR_INVALID_ARGUMENT);.

2.org.eclipse.swt.dnd.Transfer

主要作用:

a.说明data数据的格式,以合适的方式写入系统黏贴板和读取;

b.被setContents()调用validate(Object object)用于检查读音,被getContents()调用获取对应的数据.

常用的有TextTransfer(data是string类型)和RTFTransfer(data是rtf格式的文本).

各种Transfer都提供了获取静态实例的方法getInstance ().

3.DND.CLIPBOARD与DND.SELECTION_CLIPBOARD的区别

前面"int clipboards"可设置为上述2个值.默认使用CLIPBOARD.

他们的作用是啥?

看到有的文章介绍说,不同操作系统有多个黏贴板,我猜测这个选项是swt选择系统粘贴版的依据.

所以一般就用默认的DND.CLIPBOARD就好.

*代码示例

Clipboard clipboard =new Clipboard(Display.getDefault());

clipboard.setContents(new String[]{"111"},new Transfer[]{TextTransfer.getInstance()}); //复制内容

String result =clipboard.getContents(TextTransfer.getInstance()); //获取粘贴
posted on 2010-07-17 14:48  戴忠  阅读(1270)  评论(0)    收藏  举报