1 package charactermanaj.clipboardSupport;
\r
3 import java.awt.Color;
\r
4 import java.awt.Toolkit;
\r
5 import java.awt.datatransfer.Clipboard;
\r
6 import java.awt.image.BufferedImage;
\r
7 import java.io.IOException;
\r
11 * クリップボード用ユーテリティクラス.<br>
\r
14 public final class ClipboardUtil {
\r
16 private ClipboardUtil() {
\r
21 * クリップボードにイメージを設定する.<br>
\r
22 * JDKのクリップボード経由の画像転送では透過色を表現できないので、背景色を指定する必要がある.<br>
\r
23 * (ただし、このアプリケーション内であれば透過色を維持したままコピー可能.)<br>
\r
25 * @param bgColor 背景色
\r
27 public static void setImage(BufferedImage img, Color bgColor) {
\r
28 if (img == null || bgColor == null) {
\r
29 throw new IllegalArgumentException();
\r
32 Toolkit tk = Toolkit.getDefaultToolkit();
\r
33 Clipboard cb = tk.getSystemClipboard();
\r
35 ImageSelection imageSelection = new ImageSelection(img, bgColor);
\r
36 cb.setContents(imageSelection, null);
\r
40 * クリップボード内にイメージがあるか?
\r
41 * @return イメージがあればtrue
\r
43 public static boolean hasImage() {
\r
44 Toolkit tk = Toolkit.getDefaultToolkit();
\r
45 Clipboard cb = tk.getSystemClipboard();
\r
46 return ImageSelection.isSupprotedFlavorAvailable(cb);
\r
50 * クリップボードからイメージを取得する.<br>
\r
51 * 取得できる形式がない場合はnullを返す.<br>
\r
52 * @return 画像、もしくはnull
\r
53 * @throws IOException 読み取り中に例外が発生した場合
\r
55 public static BufferedImage getImage() throws IOException {
\r
56 Toolkit tk = Toolkit.getDefaultToolkit();
\r
57 Clipboard cb = tk.getSystemClipboard();
\r
58 return ImageSelection.getImage(cb);
\r