您的位置:首页 > 编程语言 > Java开发

Java中如何操作剪贴板

2008-11-30 22:32 323 查看
import java.awt.*;

import java.awt.datatransfer.*;

import java.io.*;

public class Test{

public static void main(String [] args){

String s="abc";

setClipboard(s);

System.out.println (getClipboard());

}

// If a string is on the system clipboard, this method returns it;

// otherwise it returns null.

public static String getClipboard() {

Transferable t = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null);

try {

if (t != null && t.isDataFlavorSupported(DataFlavor.stringFlavor)) {

String text = (String)t.getTransferData(DataFlavor.stringFlavor);

return text;

}

} catch (UnsupportedFlavorException e) {

} catch (IOException e) {

}

return null;

}

// This method writes a string to the system clipboard.

// otherwise it returns null.

public static void setClipboard(String str) {

StringSelection ss = new StringSelection(str);

Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);

}

//deal with image

//Getting and Setting an Image on the System Clipboard

// If an image is on the system clipboard, this method returns it;

// otherwise it returns null.

public static Image getImageClipboard() {

Transferable t = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null);

try {

if (t != null && t.isDataFlavorSupported(DataFlavor.imageFlavor)) {

Image image = (Image)t.getTransferData(DataFlavor.imageFlavor);

return image;

}

} catch (UnsupportedFlavorException e) {

} catch (IOException e) {

}

return null;

}

//Setting an image on the system clipboard requires a custom Transferable object to hold the image while on the clipboard.

// This method writes a image to the system clipboard.

// otherwise it returns null.

public static void setImageClipboard(Image image) {

ImageSelection imgSel = new ImageSelection(image);

Toolkit.getDefaultToolkit().getSystemClipboard().setContents(imgSel, null);

}

// This class is used to hold an image while on the clipboard.

public static class ImageSelection implements Transferable {

private Image image;

public ImageSelection(Image image) {

this.image = image;

}

// Returns supported flavors

public DataFlavor[] getTransferDataFlavors() {

return new DataFlavor[]{DataFlavor.imageFlavor};

}

// Returns true if flavor is supported

public boolean isDataFlavorSupported(DataFlavor flavor) {

return DataFlavor.imageFlavor.equals(flavor);

}

// Returns image

public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {

if (!DataFlavor.imageFlavor.equals(flavor)) {

throw new UnsupportedFlavorException(flavor);

}

return image;

}

}

}

这段代码主要描述了以文字和图片两种形式读写剪贴板操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: