java 获取剪切板文件_如何在Java程序中读写系统剪切板的数据
Java中使用java.awt.datatransfer.Clipboard类来描述剪切板,并把剪切板分为两种类型:本地和系统,本地剪切板使用 Clipborad cp = new Clipboard("clip1"); 来构造;系统剪切板通过
Clipboard sysc = Toolkit.getDefaultToolkit().getSystemClipboard();
获取,下面我们给出几个常用的方法用于读写剪切板中的文本数据以及图像数据
1. 从指定的剪切板中获取文本内容
protected static String getClipboardText(Clipboard clip) throws Exception{
// 获取剪切板中的内容
Transferable clipT = clip.getContents(null);
if (clipT != null) {
// 检查内容是否是文本类型
if (clipT.isDataFlavorSupported(DataFlavor.stringFlavor))
return (String)clipT.getTransferData(DataFlavor.stringFlavor);
}
return null;
}
2. 往剪切板写文本数据
protected static void setClipboardText(Clipboard clip, String writeMe) {
Transferable tText = new StringSelection(writeMe);
clip.setContents(tText, null);
}
3. 从剪切板读取图像
public static Image getImageFromClipboard() throws Exception{
Clipboard sysc = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable cc = sysc.getContents(null);
if (cc == null)
return null;
else if(cc.isDataFlavorSupported(DataFlavor.imageFlavor))
return (Image)cc.getTransferData(DataFlavor.imageFlavor);
return null;
}
4. 写图像到剪切板
protected static void setClipboardImage2(final Image image) {
Transferable trans = new Transferable(){
public DataFlavor[] getTransferDataFlavors() {
return new DataFlavor[] { DataFlavor.imageFlavor };
}
public boolean isDataFlavorSupported(DataFlavor flavor) {
return DataFlavor.imageFlavor.equals(flavor);
}
public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {
if(isDataFlavorSupported(flavor))
return image;
throw new UnsupportedFlavorException(flavor);
}
};
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(trans, null);
}
有了这四个方法,你下面可以自己写一些程序来进行测试,利用它来实现与其他程序结合测试对剪切板数据的操作。这里给出一个用于显示图像的类,只要把Image实例作为参数传入即可。
/*
* Created on 2004-12-23
* 查看图形的窗口
*/
package javayou.clipboard;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
/**
*
@author Winter Lau 用于显示图形的窗口
*/
public class ImageViewer extends Frame {
private Image image;
/**
* 显示一个图像
* @param viewMe
*/
public ImageViewer(Image viewMe) {
image = viewMe;
MediaTracker mediaTracker = new MediaTracker(this);
mediaTracker.addImage(image, 0);
try {
mediaTracker.waitForID(0);
} catch (InterruptedException ie) {
ie.printStackTrace();
System.exit(1);
}
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//窗口适应图像大小
setSize(image.getWidth(null), image.getHeight(null));
//窗口标题
setTitle("Viewing Image from Clipboard");
setVisible(true);
}
public void paint(Graphics graphics) {
graphics.drawImage(image, 0, 0, null);
}
/**
* 用于读取图像文件并生成Image对象
*/
public static Image getImageFromFile(String fileName) {
Toolkit toolkit = Toolkit.getDefaultToolkit();
Image image = toolkit.getImage(fileName);
return image;
java 获取剪切板文件_如何在Java程序中读写系统剪切板的数据相关推荐
- 在java读字符串入文件_如何在java中将文件读入字符串?
我已经将文件读入String. 该文件包含各种名称,每行一个名称. 现在的问题是我想在String数组中使用这些名称. 为此我写了以下代码: String [] names = fileString. ...
- java eclipse导入工程文件_如何在Eclipse软件中导入Java工程文件
有些在学习Java编程的用户虽然会创建工程,但是对于怎么导入工程文件却不清楚,下面这篇教程我们就来为大家介绍一下,在Eclipse软件中导入Java工程文件的方法,有兴趣的朋友就来了解一下吧. 解决方 ...
- matlab分析xml文件_如何在Java中读取XML文件(DOM分析器)
matlab分析xml文件 Today we will learn how to read the XML file in Java. We will also learn how to parse ...
- java将输出结果写入csv文件_如何在Java中将数据写入.csv文件?
名为OpenCSV的库提供API来从.CSV文件读取数据或将数据写入.CSV文件.此处说明了如何使用Java程序写入.csv文件的内容. Maven依赖 com.opencsv opencsv 4.4 ...
- java 检测目录下的文件_如何在Java中检查文件是目录还是文件
java 检测目录下的文件 java.io.File class contains two methods using which we can find out if the file is a d ...
- java字符串字符排列组合_如何在Java中查找字符串的所有排列
java字符串字符排列组合 In this tutorial, we will learn how to find the permutation of a String in a Java Prog ...
- java 获取 反射 方法 名_乐字节Java反射之一:反射概念与获取反射源头Class
一.Java反射机制概念 "程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言",如Python, Ruby是动态语言:显然C++,Java,C#不是动态语言,但是JAV ...
- java web 自定义标签_如何在JavaWeb程序中使用自定义标签
展开全部 tld定义格式32313133353236313431303231363533e78988e69d8331333361323566 [java] view plain copy print? ...
- java 查找链表中间元素_如何在Java中一次性查找Java中链表的中间元素
如何在一次传递中找到LinkedList的中间元素?这是一个 Java 和非Java程序员面试时经常被问到的编程问题.这个问题类似于检查回文或计算阶乘,有时也会要求编写代码.为了回答这个问题,候选人必 ...
- java 合并两个列表_如何在Java中合并两个列表?
java 合并两个列表 Merging two lists in Java is often a useful operation. These lists can be ArrayLists or ...
最新文章
- VS2010重构学习总结
- 【OpenCV3】彩色映射——cv::applyColorMap()与cv::LUT()详解
- ffplay.c学习-8-暂停、逐帧、⾳量
- Java多线程系列(二):线程的五大状态,以及线程之间的通信与协作
- mfc ribbon动态修改字符_如何動態更改CMFCRibbonLabel的文本
- CentOs6.x yum源停止维护,安装yum源
- mysql 8 sql server_终于将 SQL Server 成功迁移至 MySQL8.0 啦!!!
- 网络排障少走弯路两案例速解网管疑难
- Python人工智能入门(修订版)
- 电脑系统时间服务器地址,电脑时间同步服务器ip地址
- 日记侠:写文章快速赚钱的方法就3个字
- java区间并集_区间并集求解算法实现
- 计算机的任务管理器在哪,怎么打开任务管理器 多种方法详细教学
- 计算机突然无法连接网络,win7电脑突然不能上网的四种解决方案
- 鬼谷八荒逆天改命修改教程(3月亲测有效)
- mysql查询使用qq邮箱注册_Spring Boot实现qq邮箱验证码注册和登录验证功能
- 使用计算机求函数极限示例
- VR全景电子商务增加客户体验
- 联阳(ITE)IT66021FN:HDMI转RGB芯片 3D 资料
- 在word中利用Endnote导入文献时提示“无法编辑range”的解决办法-基本上通过以下方法都可以解决
热门文章
- Linux下禁用笔记本触摸板
- 惠普笔记本触摸板失灵
- php 取余数函数,PHP取余函数介绍MOD(x,y)与x%y
- Arduino--土壤湿度传感器使用(电阻式)
- 如何录制游戏视频?游戏录制软件推荐
- 计算机的kb和m之间的换算,g和兆的换算(G和M之间的换算)
- 辛弃疾 菩萨蛮·书江西造口壁
- 基于STM32的小游戏——谷歌小恐龙(Chrome Dino Game)
- OpenDaylight-Boron学习笔记: 6 VTN模块
- w ndows10图标,Win10桌面图标没了怎么办?Win10桌面快捷方式消失了解决方法