Java日常實(shí)用技巧之監(jiān)聽(tīng)系統(tǒng)剪貼板數(shù)據(jù)
一個(gè)英文的MV,
Dancing With Your Ghost
視頻來(lái)源網(wǎng)絡(luò),
之前有遇到過(guò)需要監(jiān)聽(tīng)鼠標(biāo)右鍵復(fù)制或者鍵盤(pán)輸入Ctrl+C的需求,之后便到處找這樣子的代碼,經(jīng)過(guò)多方挖掘,這里獲取了一套靈活通過(guò)Java程序靈活監(jiān)聽(tīng)剪貼板數(shù)據(jù)的方法,方便記憶,這里作為一點(diǎn)Java實(shí)現(xiàn)技巧記錄,方便日后有需要可以隨時(shí)查閱。
這里主要用到Java自帶類(lèi)庫(kù)
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();// 獲取剪切板中的內(nèi)容Transferable clipTf = sysClip.getContents(null);if(clipTf == null){return null;}// 檢查內(nèi)容是否是文本類(lèi)型if (clipTf.isDataFlavorSupported(DataFlavor.stringFlavor)) {return (String) clipTf.getTransferData(DataFlavor.stringFlavor);}return ret;}}
上面代碼,運(yùn)行結(jié)果,顯示目前剪貼板數(shù)據(jù):

相反的,也可以將指定的數(shù)據(jù),寫(xiě)到剪貼板中,提供粘貼
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{// 把文本設(shè)置到剪貼板(復(fù)制)setClipboardString("感謝您的關(guān)注!");// 從剪貼板中獲取文本(粘貼)System.out.println("當(dāng)前剪貼板數(shù)據(jù): " +MonitorClipboard.getSysClipboardText());}private static void setClipboardString(String str) {// 獲取系統(tǒng)剪貼板Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();// 封裝文本內(nèi)容Transferable trans = new StringSelection(str);// 把文本內(nèi)容設(shè)置到系統(tǒng)剪貼板clipboard.setContents(trans, null);}}
運(yùn)行結(jié)果,將我們?cè)O(shè)置的數(shù)據(jù)成功設(shè)置到粘貼板中,

可以隨意Ctrl+V了
有喜歡的歡迎關(guān)注轉(zhuǎn)發(fā)
評(píng)論
圖片
表情
