Java中剪切板的操作

    xiaoxiao2024-11-21  1

    JAVA中有时需要操作系统剪切板的问题,下面演示如何用Java操作系统剪切板,就是定义一个类其中引入需要的包,设计需要的方法,为了不用建立实例即可直接使用,可把方法设置为静态方法 static ,具体步骤如下:

    1,引入对应的包

    [java]  view plain  copy import java.io.IOException;   import java.awt.Toolkit;   import java.awt.datatransfer.Clipboard;   import java.awt.datatransfer.DataFlavor;   import java.awt.datatransfer.StringSelection;   import java.awt.datatransfer.Transferable;   import java.awt.datatransfer.UnsupportedFlavorException;   import java.awt.Image;   2,设置系统剪切板内容[内容为文本]

    [java]  view plain  copy public static void setSystemClipboard(String refContent){    //设置为static是为了直接使用,不用new一个该类的实例即可直接使用,即定义的: 类名.方法名       String vc = refContent.trim();       StringSelection ss = new StringSelection(vc);              Clipboard sysClb=null;       sysClb = Toolkit.getDefaultToolkit().getSystemClipboard();       sysClb.setContents(ss,null);               //Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);  //跟上面三行代码效果相同   }  

    3,获取系统剪切板内容[剪切板中内容为文本型]

    [java]  view plain  copy public static String getSystemClipboard(){//获取系统剪切板的文本内容[如果系统剪切板复制的内容是文本]       Clipboard sysClb=null;       sysClb = Toolkit.getDefaultToolkit().getSystemClipboard();       Transferable t = sysClb.getContents(null);       //Transferable t = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null);  //跟上面三行代码一样       try {            if (null != t && t.isDataFlavorSupported(DataFlavor.stringFlavor)) {            String text = (String)t.getTransferData(DataFlavor.stringFlavor);            return text;            }        } catch (UnsupportedFlavorException e) {           //System.out.println("Error tip: "+e.getMessage());       } catch (IOException e) {        }   //System.out.println("Error tip: "+e.getMessage());       return null;    }  

    4,设置系统剪切板内容[内容为图片型]

    [java]  view plain  copy public static void setImageClipboard(Image image) {        ImageSelection imgSel = new ImageSelection(image);        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(imgSel, null);    }       public static class ImageSelection implements Transferable {        private Image image;        public ImageSelection(Image image) {this.image = image;}                 public DataFlavor[] getTransferDataFlavors() {            return new DataFlavor[]{DataFlavor.imageFlavor};        }                 public boolean isDataFlavorSupported(DataFlavor flavor) {            return DataFlavor.imageFlavor.equals(flavor);        }                public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {            if (!DataFlavor.imageFlavor.equals(flavor)) {throw new UnsupportedFlavorException(flavor);}            return image;        }   }   5,获取系统剪切板内容[剪切板中内容为图片型]

    [java]  view plain  copy public static Image getImageClipboard() {        Transferable t = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null);        try {            if (null  != t && t.isDataFlavorSupported(DataFlavor.imageFlavor)) {            Image image = (Image)t.getTransferData(DataFlavor.imageFlavor);            return image;            }        } catch (UnsupportedFlavorException e) {              //System.out.println("Error tip: "+e.getMessage());       } catch (IOException e) {              //System.out.println("Error tip: "+e.getMessage());       }        return null;    }   6,使用方式 [java]  view plain  copy 类名.setSystemClipboard("这里是新设置的剪切板的内容");  //给剪切板设置文本型内容       String clbContent = 类名.getSystemClipboard();  //获取剪切板的文本型内容      Image img = new Image("xpic.jpg")   类名.setImageClipboard(img);  //给剪切板设置图片型内容    Image img2 = 类名.getImageClipboard(); //获取剪切板的图片型内容   操作的内容常用的有图片和文本型数据,当然还有其他的,可对应的修改方法,和引入对应的包;
    转载请注明原文地址: https://ju.6miu.com/read-1293868.html
    最新回复(0)