Java日常实用技巧之监听系统剪贴板数据

lgli

共 2063字,需浏览 5分钟

 · 2020-11-20

一个英文的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了




有喜欢的欢迎关注转发





浏览 58
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报