私は35x40ピクセルを持っています。pngimageSwingアプリケーションでカスタムカーソルとして使用したい。画像には輝きがあるため、アルファ透明度の値が含まれています。問題は、を使用してカスタムカーソルを生成する従来の方法を使用しようとするとToolkit
、アルファ透明度の値があるはずの場所に黒いピクセルが表示されることです。
これが私がカーソルに使用している画像です: https ://dl.dropbox.com/u/1186703/cursor.png
これが私のコードです:
public static void main(String[] args) throws IOException {
new Sandbox().gui();
}
private Cursor cursor;
private Toolkit kit;
private Image cursorImage;
public void gui() {
kit = Toolkit.getDefaultToolkit();
cursorImage = kit.createImage(getClass().getResource(
"/aurora/V1/resources/cursor.png"));
cursor = Toolkit.getDefaultToolkit().createCustomCursor(
cursorImage, new Point(0, 0), "CustomCursor");
setSize(800, 800);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
setCursor(cursor);
}
現在の結果は次のとおりです。
編集この方法はクロスプラットフォームではうまく機能しないようです。たとえば、WindowsLAFは半透明性をサポートしていません。したがって、この実装がMac OSXで機能すると仮定して、これをWindowsで機能させるためのソリューションを探しています。アプリが実行されているオペレーティングシステムに基づいて、使用する実装をコードで指定できます。