• Java 访问(复制,粘贴)剪切板(转)


    以下共有4个函数分别是: 
    1.从剪切板获得文字。 
    2.将字符串复制到剪切板。 
    3.从剪切板获得图片。 
    4.复制图片到剪切板。 
    Java代码  收藏代码
    1. /** 
    2.      * 从剪切板获得文字。 
    3.      */  
    4.     public static String getSysClipboardText() {  
    5.         String ret = "";  
    6.         Clipboard sysClip = Toolkit.getDefaultToolkit().getSystemClipboard();  
    7.         // 获取剪切板中的内容  
    8.         Transferable clipTf = sysClip.getContents(null);  
    9.   
    10.         if (clipTf != null) {  
    11.             // 检查内容是否是文本类型  
    12.             if (clipTf.isDataFlavorSupported(DataFlavor.stringFlavor)) {  
    13.                 try {  
    14.                     ret = (String) clipTf  
    15.                             .getTransferData(DataFlavor.stringFlavor);  
    16.                 } catch (Exception e) {  
    17.                     e.printStackTrace();  
    18.                 }  
    19.             }  
    20.         }  
    21.   
    22.         return ret;  
    23.     }  
    24.   
    25.     /** 
    26.      * 将字符串复制到剪切板。 
    27.      */  
    28.     public static void setSysClipboardText(String writeMe) {  
    29.         Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();  
    30.         Transferable tText = new StringSelection(writeMe);  
    31.         clip.setContents(tText, null);  
    32.     }  
    33.   
    34.     /** 
    35.      * 从剪切板获得图片。 
    36.      */  
    37.     public static Image getImageFromClipboard() throws Exception {  
    38.         Clipboard sysc = Toolkit.getDefaultToolkit().getSystemClipboard();  
    39.         Transferable cc = sysc.getContents(null);  
    40.         if (cc == null)  
    41.             return null;  
    42.         else if (cc.isDataFlavorSupported(DataFlavor.imageFlavor))  
    43.             return (Image) cc.getTransferData(DataFlavor.imageFlavor);  
    44.         return null;  
    45.     }  
    46.   
    47.     /** 
    48.      * 复制图片到剪切板。 
    49.      */  
    50.     public static void setClipboardImage(final Image image) {  
    51.         Transferable trans = new Transferable() {  
    52.             public DataFlavor[] getTransferDataFlavors() {  
    53.                 return new DataFlavor[] { DataFlavor.imageFlavor };  
    54.             }  
    55.   
    56.             public boolean isDataFlavorSupported(DataFlavor flavor) {  
    57.                 return DataFlavor.imageFlavor.equals(flavor);  
    58.             }  
    59.   
    60.             public Object getTransferData(DataFlavor flavor)  
    61.                     throws UnsupportedFlavorException, IOException {  
    62.                 if (isDataFlavorSupported(flavor))  
    63.                     return image;  
    64.                 throw new UnsupportedFlavorException(flavor);  
    65.             }  
    66.   
    67.         };  
    68.         Toolkit.getDefaultToolkit().getSystemClipboard().setContents(trans,  
    69.                 null);  
    70.     }  
    转自:http://javapub.iteye.com/blog/939167
  • 相关阅读:
    批处理命令三综合运用
    批处理命令提高一
    批处理命令提高二for命令详解
    idea、sts+ lombok 插件安装
    js 字符串数组转为整形int类型数组
    单机CEPH安装部署与对象存储
    征文投稿丨基于轻量应用服务器+OSS的中小型应用运维实践
    可观测,才可靠:云上自动化运维CloudOps系列沙龙 第一弹
    阿里云刘珅孜:云游戏带来的启发——端上创新
    为什么生命科学企业都在陆续上云?
  • 原文地址:https://www.cnblogs.com/fatfatdachao/p/3935729.html
Copyright © 2020-2023  润新知