Java日常实用技巧之监听系统剪贴板数据
一个英文的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了
有喜欢的欢迎关注转发
评论
