OSDN Git Service

リポジトリ内改行コードのLFへの修正
[charactermanaj/CharacterManaJ.git] / src / main / java / charactermanaj / clipboardSupport / ClipboardUtil.java
1 package charactermanaj.clipboardSupport;
2
3 import java.awt.Color;
4 import java.awt.Toolkit;
5 import java.awt.datatransfer.Clipboard;
6 import java.awt.image.BufferedImage;
7 import java.io.IOException;
8
9
10 /**
11  * クリップボード用ユーテリティクラス.<br>
12  * @author seraphy
13  */
14 public final class ClipboardUtil {
15         
16         private ClipboardUtil() {
17                 super();
18         }
19         
20         /**
21          * クリップボードにイメージを設定する.<br>
22          * JDKのクリップボード経由の画像転送では透過色を表現できないので、背景色を指定する必要がある.<br>
23          * (ただし、このアプリケーション内であれば透過色を維持したままコピー可能.)<br>
24          * @param img イメージ
25          * @param bgColor 背景色
26          */
27         public static void setImage(BufferedImage img, Color bgColor) {
28                 if (img == null || bgColor == null) {
29                         throw new IllegalArgumentException();
30                 }
31
32                 Toolkit tk  = Toolkit.getDefaultToolkit();
33                 Clipboard cb = tk.getSystemClipboard();
34                 
35                 ImageSelection imageSelection = new ImageSelection(img, bgColor);
36                 cb.setContents(imageSelection, null);
37         }
38
39         /**
40          * クリップボード内にイメージがあるか?
41          * @return イメージがあればtrue
42          */
43         public static boolean hasImage() {
44                 Toolkit tk = Toolkit.getDefaultToolkit();
45                 Clipboard cb = tk.getSystemClipboard();
46                 return ImageSelection.isSupprotedFlavorAvailable(cb);
47         }
48         
49         /**
50          * クリップボードからイメージを取得する.<br>
51          * 取得できる形式がない場合はnullを返す.<br>
52          * @return 画像、もしくはnull
53          * @throws IOException 読み取り中に例外が発生した場合
54          */
55         public static BufferedImage getImage() throws IOException {
56                 Toolkit tk = Toolkit.getDefaultToolkit();
57                 Clipboard cb = tk.getSystemClipboard();
58                 return ImageSelection.getImage(cb);
59         }
60         
61 }