2011年6月20日月曜日

【メモ】Javaでデスクトップアプリケーションを作っていて、マウスカーソルを非表示にしたい時

マウスカーソルを砂時計にしたいとかのニーズはありそうですが。。。
こんなニーズあるんでしょうか。。。
あるんです。

java.awt.Cursorクラスには以下のようなスタティックフィールドが定義されてます。

        Cursor.CROSSHAIR_CURSOR
        Cursor.CUSTOM_CURSOR
        Cursor.DEFAULT_CURSOR
        Cursor.E_RESIZE_CURSOR
        Cursor.HAND_CURSOR
        Cursor.MOVE_CURSOR
        Cursor.NE_RESIZE_CURSOR
        Cursor.NW_RESIZE_CURSOR
        Cursor.N_RESIZE_CURSOR
        Cursor.SE_RESIZE_CURSOR
        Cursor.SW_RESIZE_CURSOR
        Cursor.S_RESIZE_CURSOR
        Cursor.TEXT_CURSOR
        Cursor.WAIT_CURSOR
        Cursor.W_RESIZE_CURSOR 

カーソル非表示!!!というフィールドがあってもいいような気がするんですが
用意されてないようです。

そこで、
将来の為にメモ。

BufferedImage image = new BufferedImage(16,16,
                   BufferedImage.TYPE_4BYTE_ABGR);
Graphics2D g2 = image.createGraphics();
// 黒で透明 black & transparency
g2.setColor(new Color(0,0,0,0));   
g2.fillRect(0,0, 16,16);
g2.dispose();
mainPanel.setCursor(Toolkit.getDefaultToolkit().createCustomCursor(
                   image, new Point(0,0), "null_cursor"));

0 件のコメント:

コメントを投稿