Почему функция createCustomCursor Java Toolkit не работает должным образом в ОС Ubuntu (Linux)? - PullRequest
0 голосов
/ 23 сентября 2018

У меня есть приложение для рисования, которое должно менять значки курсора мыши в зависимости от того, какой инструмент выбран (или не выбран).Например, при выборе инструмента «Кисть» появится кисть.Если ничего не выбрать, будет отображаться рука и т. Д.

Код для установки изображения курсора

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)

enter image description here

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

enter image description here

  • Кроме того, на Ubuntu есть еще одно изображение кисти, которое целиком превращается в измененный красный цвет.

Мои вопросы

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