Java日常实用技巧之监听系统剪贴板数据
lgli
共 2063字,需浏览 5分钟
·
2020-11-20 03:02
一个英文的MV,
Dancing With Your Ghost
视频来源网络,
之前有遇到过需要监听鼠标右键复制或者键盘输入Ctrl+C的需求,之后便到处找这样子的代码,经过多方挖掘,这里获取了一套灵活通过Java程序灵活监听剪贴板数据的方法,方便记忆,这里作为一点Java实现技巧记录,方便日后有需要可以随时查阅。
这里主要用到Java自带类库
java.awt.Toolkit
直接上代码
package com.lgli.clipboard;
import java.awt.*;
import java.awt.datatransfer.*;
/**
* MonitorClipboard
* @author lgli
* @date 2020/11/18 22:18
*/
public class MonitorClipboard {
public static void main(String[] args) throws Exception{
System.out.println(getSysClipboardText());
}
public static String getSysClipboardText() throws Exception{
String ret = "";
Clipboard sysClip = Toolkit.getDefaultToolkit()
.getSystemClipboard();
// 获取剪切板中的内容
Transferable clipTf = sysClip.getContents(null);
if(clipTf == null){
return null;
}
// 检查内容是否是文本类型
if (clipTf.isDataFlavorSupported(DataFlavor.stringFlavor)) {
return (String) clipTf.
getTransferData(DataFlavor.stringFlavor);
}
return ret;
}
}
上面代码,运行结果,显示目前剪贴板数据:
相反的,也可以将指定的数据,写到剪贴板中,提供粘贴
package com.lgli.clipboard;
import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
/**
* ClipboardInputOutput
* @author lgli
* @date 2020/9/13 22:12
*/
public class ClipboardInputOutput {
public static void main(String[] args) throws Exception{
// 把文本设置到剪贴板(复制)
setClipboardString("感谢您的关注!");
// 从剪贴板中获取文本(粘贴)
System.out.println("当前剪贴板数据: " +
MonitorClipboard.getSysClipboardText());
}
private static void setClipboardString(String str) {
// 获取系统剪贴板
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
// 封装文本内容
Transferable trans = new StringSelection(str);
// 把文本内容设置到系统剪贴板
clipboard.setContents(trans, null);
}
}
运行结果,将我们设置的数据成功设置到粘贴板中,
可以随意Ctrl+V了
有喜欢的欢迎关注转发
评论