У меня есть приложение для рисования, которое должно менять значки курсора мыши в зависимости от того, какой инструмент выбран (или не выбран).Например, при выборе инструмента «Кисть» появится кисть.Если ничего не выбрать, будет отображаться рука и т. Д.
Код для установки изображения курсора
public void mouseEntered(MouseEvent evt)
{
Object source=evt.getSource();
java.awt.Toolkit toolkit = java.awt.Toolkit.getDefaultToolkit();
//mouseEntered=true;
try{
Cursor a = toolkit.createCustomCursor(cursorImage, new Point((this.getX()),(this.getY())), "");
this.setCursor (a);
}catch(Exception l){ }
}
Это mouseEntered () для пользовательского JPanel с именем PaintPanel.Всякий раз, когда пользователь вводит его, изображение курсора изменяется в соответствии с выбранным в данный момент инструментом (что отражено в " cursorImage ")
Код для установки / изменения cursorImage::
cursorImage = ImageIO.read(getClass().getResourceAsStream("/handpen.png"));
Значок «HandPen» используется, когда пользователь не активно рисует.Значок отображается правильно и во всех его цветах на Macos и в ОС Windows 7.
ПРОБЛЕМА
Недавно я изменил свою ОС Windows на Ubuntu (Linux), и я замечаю, что все cursorIcons отображаются либо в черно-белом , либо в красном цвете и искажаются до неузнаваемости , когда они отображаются в виде курсора.
Исходное изображение курсора: (png)

Вот как курсор рисуется в Ubuntu (его увеличенное изображение):

- Кроме того, на Ubuntu есть еще одно изображение кисти, которое целиком превращается в измененный красный цвет.
Мои вопросы
- Что вызывает странные цвета на курсоре?
- Как исправить это и отобразить цветные значки курсора, как в Mac OS ?