自制java工具实现 ctrl+c+c 翻译鼠标选中文本

前言

本功能的实现基于这篇笔记 http://t.csdnimg.cn/1I8ln,本文阅读过程中有疑惑都可以查看此笔记

实现思路:检测到按压ctrl +c +c 后,获取当前剪切板文字,调用百度翻译api。

实现结果:

GIF.gif

完整代码在最后

实现过程

1 监控ctrl +c +c

在当前demo的功能中我们可以看到,当按压键盘时会调用nativeKeyPressed方法,并会打印当前按下的按钮字符串。
image.png
我们去掉一些打印的干扰:去除release和type的打印,以及press打印的前缀
image.png
此时就只会打印我们的按键
image.png
现在去实现:当连续按压ctrl+c+c时,打印"你按下了ctrl+c+c哦"
思路:初始设置一个key字符串为"“,当检测到按压ctrl时,设置key为"Ctrl”,当不是Ctrl时,key拼接本次按压的按键,然后和"CtrlCC"做比较。如果相同,则说明用户连续按压了ctrl+c+c;
代码实现(红框内为添加的代码):
image.png
效果:
image.png

2 获取剪切板内容

在我们进行ctrl+c+c的操作过程中,第一个ctrl+c就会将鼠标选择的内容放到剪切板里,此时我们获取剪切板的内容,之后再用这个内容调用翻译api即可。
创建一个剪切板工具类

/**
 * 剪切板工具类
 */
public class ClipBoardUtil {
   
    public static String getClipboardText() {
   
        Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
        //从系统剪切板中获取数据
        Transferable content = clipboard.getContents(null);
        //判断是否为文本类型
        if (content.isDataFlavorSupported(DataFlavor.stringFlavor)) {
   
            //从数据中获取文本值
            String text = null;
            try {
   
                text = (String) content.getTransferData(DataFlavor.stringFlavor);
            }  catch (Exception e) {
   

            }
            if (text == null) {
   
                return "剪切板为空";
            }
            return text;
        }
        return "剪切板无文本值";
    }
}

在代码中调用:
image.png
效果:
image.png

3 调用百度翻译api

注册账号,开通服务

搜索百度翻译开放平台,注册账号,实名认证后,可以申请高级版用户
标准版:注册,未实名
高级版:注册,实名
尊享版:企业认证
image.png
高级版每个月有100万字符的免费调用量,对于个人使用的话绰绰有余了。
注册后,在管理控制台中开通文本翻译服务

详细见文档
image.png

根据文档,编写代码

image.png
其中appid和密钥,在我们的管理控制台中
image.png
以下是调用方法的代码实现,我们创建一个TransApi

import cn.hutool.crypto.digest.DigestUtil;
import cn.hutool.http.HttpUtil;

import java.util.HashMap;
import java.util.Map;

public class TransApi {
   
    private static final String TRANS_API_HOST = "http://api.fanyi.baidu.com/api/trans/vip/translate"<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值