java怎么使用剪切板

java中如何使用剪切板我想把字符串复制到windows剪切板求代码要有注释的..谢谢还有要怎样获得剪切板的内容..... java中 如何使用剪切板 我想把字符串复制到windows剪切板 求代码 要有注释的..谢谢
还有要怎样获得剪切板的内容..
展开
 我来答
光环国际PMP培训中心
推荐于2016-01-23 · TA获得超过9902个赞
知道大有可为答主
回答量:1850
采纳率:95%
帮助的人:487万
展开全部
  Java提供两种类型的剪贴板:系统的和本地的.

  本地剪贴板只在当前虚拟机中有效.Java允许多个本地剪贴板同时存在,可以方便地通过剪贴板的名称来进行存取访问.

  系统剪贴板与同等操作系统直接关连,允许应用程序与运行在该操作系统下的其它程序之间进行信息交换.

  在进一步深入之前,先看看与剪贴板相同的java类,这些类主要包含在java.awt.datatransfer包中,主要有以下几种:

  Clipboard类: 此类实现一种使用剪切/复制/粘贴操作传输数据的机制.

  ClipboardOwner接口: 任何处理剪贴板的类都必须实现该接口.该接口用于剪贴板中的原始数据被替换时发出通知.

  Dataflavor类: 提供有关数据的元信息,通常用于访问剪切板上的数据。

  Transferable接口: 为传输操作提供数据所使用的类的接口

  StringSelection类: 实现传输String所需能力的Transferable

  Clipboard类:方法

  1.String getName(); 返回剪切板对象的名字

  2.setContents(Transferable contents,ClipOwner owner);

  讲剪切板的内容设置到指定的Transferable对象,并将指定的剪切板所有者作为新内容的所有者注册

  3.Transferable getContents(null);

  返回表示剪贴板当前内容的 transferable 对象。无则null

  4.DataFlavor[] getAvailableDataFlavors();

  返回 DataFlavor 的数组,其中提供了此剪贴板的当前内容。无则null

  5.boolean isDataFlavorAvailable(DataFlavor flavor);

  返回是否能够以指定的 DataFlavor 形式提供此剪贴板的当前内容。

  6.Object getData(DataFlavor flavor);

  返回一个对象,表示此剪贴板中指定 DataFlavor 类型的当前内容。

  Transferable接口:

  属性:

  1.stringFlavor:字符串数据

  2.imageFlavor:图片数据

  方法:

  1.Object getTransferData(DataFlavor flavor)

  返回一个对象,该对象表示将要被传输的数据。

  2.DataFlavorgetTransferDataFlavors()

  返回 DataFlavor 对象的数组,指示可用于提供数据的 flavor。

  3.boolean isDataFlavorSupported(DataFlavor flavor)

  返回此对象是否支持指定的数据 flavor。

  例子:1.往剪切板里面写文本数据

  Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();

  Transferable trandata = new StringSelection("4654654");

  clipboard.setContents(trandata, null);

  2.获取剪切板中的内容(文本数据)

  Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();

  Transferable clipT = clipboard.getContents(null);
//获取文本中的Transferable对象

  if(clipT!=null){

  if(clipT.isDataFlavorSupported(DataFlavor.stringFlavor))
//判断内容是否为文本类型stringFlavor

  return (String)clipT.getTransferData(DataFlavor.stringFlavor);
//返回指定flavor类型的数据
百度网友12ee0fd
2012-11-03 · TA获得超过4.7万个赞
知道大有可为答主
回答量:1.1万
采纳率:66%
帮助的人:2343万
展开全部
StringSelection stringSelection = new StringSelection("text");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);
追问
那我要怎么获得剪切板的内容呢?
追答
就是这样子

// If a string is on the system clipboard, this method returns it; otherwise it returns null.
public static String getStringFromClipboard() {
Transferable transferable = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null);

try {
if (transferable != null && transferable.isDataFlavorSupported(DataFlavor.stringFlavor)) {
String text = (String) transferable.getTransferData(DataFlavor.stringFlavor);
return text;
}
} catch (UnsupportedFlavorException e) {
System.out.println("Clipboard content flavor is not supported " + e.getMessage());
} catch (IOException e) {
System.out.println("Clipboard content could not be retrieved " + e.getMessage());
}
return null;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式