マウスカーソルをなくす方法を調べていたが、うまくいかず透過PNGを使うことで解決をした。透過PNGを作成するために、GIMP for Windows をダウンロードしてインストール。GIMPはPhotoshopなどと操作体系が微妙に違うので、どうやって透過PNGを作ればよいかちょっと悩む。
キーワードはアルファチャンネルで、[画像]-[モード]-[RGB]とカラーモードにしてから、[画像]-[アルファ]-[アルファチャンネルを追加]として透明にする部分を指定するためのチャンネルを追加する。透過したい部分を選択してから、[編集]-[消去]とすれば透過部分ができあがる。後は、[別名保存]でPNG形式でファイルを保存すればいい。
Javaでマウスカーソルを設定するのはJava2からはできるようになっている。サンプルソースをどうぞ。
import java.awt.Cursor;
import java.awt.Image;
import java.awt.Point;
import java.awt.Toolkit;
import javax.swing.JFrame;
public class Starter {
public static void main(String[] args) {
String s = “resource/cursor.png”;
JFrame frame = new JFrame(“Original Cursor Frame”);
frame.setSize(200, 100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
try {
Image cursorImage = Toolkit.getDefaultToolkit().getImage(s);
Point hotSpot = new Point(12, 12);
Cursor cursor =
Toolkit.getDefaultToolkit().createCustomCursor(
cursorImage,
hotSpot,
“original cursor”);
frame.setCursor(cursor);
} catch (java.lang.IndexOutOfBoundsException e) {
System.out.println(“Can’t create such big custome cursor”);
} catch (java.awt.HeadlessException e) {
System.out.println(“Can’t create custome cursor”);
} catch (Exception e) {
System.out.println(“Can’t load custome cursor:” + e);
}
frame.setVisible(true);
}
}