/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package open.dolphin.utilities.utility; import java.awt.Image; import java.awt.Toolkit; import java.awt.datatransfer.*; import java.io.IOException; /** * クリップボードクラス * @author S.Oh@Life Sciences Computing Corporation. */ public class Clipboard { /** * コンストラクタ */ public Clipboard() {} /** * 文字列をクリップボードへセット * @param str 文字列 */ public void setClipboardString(String str) { Toolkit tool = Toolkit.getDefaultToolkit(); java.awt.datatransfer.Clipboard clip = tool.getSystemClipboard(); StringSelection selection = new StringSelection(str); clip.setContents(selection, selection); } /** * クリップボードから文字列を取得 * @return 文字列 */ public String getClipboardString() { Toolkit tool = Toolkit.getDefaultToolkit(); java.awt.datatransfer.Clipboard clip = tool.getSystemClipboard(); try{ return (String)clip.getData(DataFlavor.stringFlavor); }catch(UnsupportedFlavorException e) { return null; }catch(IOException e) { return null; } } /** * クリップボードへ画像をセット * @param img 画像 */ public void setClipboardImage(Image img) { Toolkit tool = Toolkit.getDefaultToolkit(); java.awt.datatransfer.Clipboard clip = tool.getSystemClipboard(); ImageSelection selection = new ImageSelection(img); clip.setContents(selection, selection); } /** * クリップボードから画像を取得 * @return 画像 */ public Image getClipboardImage() { Toolkit tool = Toolkit.getDefaultToolkit(); java.awt.datatransfer.Clipboard clip = tool.getSystemClipboard(); try{ return (Image)clip.getData(DataFlavor.imageFlavor); }catch(UnsupportedFlavorException e) { return null; }catch(IOException e) { return null; } } } /** * ImageSelectionクラス * @author S.Oh@Life Sciences Computing Corporation. */ class ImageSelection implements Transferable, ClipboardOwner { protected Image img; /** * コンストラクタ * @param image 画像 */ public ImageSelection(Image image) { img = image; } /** * 対応フレーバーの取得 * @return フレーバー */ @Override public DataFlavor[] getTransferDataFlavors() { return new DataFlavor[] { DataFlavor.imageFlavor }; } /** * フレーバーのチェック * @param flavor フレーバー * @return サポート結果 */ @Override public boolean isDataFlavorSupported(DataFlavor flavor) { return DataFlavor.imageFlavor.equals(flavor); } /** * 画像の取得 * @param flavor フレーバー * @return 画像 * @throws UnsupportedFlavorException * @throws IOException */ @Override public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { if (DataFlavor.imageFlavor.equals(flavor)) { return img; } throw new UnsupportedFlavorException(flavor); } /** * クリップボードデータの破棄 * @param clipboard * @param contents */ @Override public void lostOwnership(java.awt.datatransfer.Clipboard clipboard, Transferable contents) { img = null; } }