Реализация курсора в Java с некоторой прозрачностью
У меня 35х40 пикселей. Я хочу использовать в качестве пользовательского курсора в приложении Swing. Изображение имеет свечение, поэтому содержит значения альфа-прозрачности. Проблема в том, когда я пытаюсь использовать обычный метод использования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);
}
Вот текущий результат:
редактировать кажется, что этот метод не работает хорошо кроссплатформенный, например, Windows LAF не поддерживает полупрозрачность. Поэтому я ищу какое-либо решение, чтобы заставить это работать на Windows, предполагая, что эта реализация работает на Mac OSX, я могу просто указать в коде, какую реализацию использовать в зависимости от операционной системы, в которой работает приложение.