我有一个 35x40 像素。我想在 Swing 应用程序中用作自定义光标的 png 图像。该图像具有发光,因此包含 Alpha 透明度值。问题是当我尝试使用传统的方法Toolkit
来生成自定义光标时,我会得到黑色像素,其中应该是 alpha 透明度值。
这是我用于光标的图像: 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);
}
这是当前的结果:
编辑似乎这种方法在跨平台上效果不佳,例如 Windows LAF 不支持半透明。因此,我正在寻找任何解决方案来让它在 Windows 上工作,假设这个实现在 Mac OSX 上工作,我可以在代码中指定根据应用程序运行的操作系统使用哪个实现。