Я ищу, чтобы создать пользовательский указатель мыши для приложения рисования в Java. Приложение должно работать в Windows, и из-за ограничений в окнах относительно размера курсора (32 * 32 px) невозможно использовать встроенные функции Cursor.Пользовательский рисунок курсора мыши в Java (swing)
Я попытался нарисовать изображение в текущем местоположении мыши с помощью MouseMotionListener, и это работает, когда я рисую его на пустой панели. Изображение правильно «следует» мыши, так что это не проблема.
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(cursorimage, x, y, null);
}
Однако, когда я добавляю детей на эту панель, курсор мыши отображается за детьми. Например, когда я добавляю несколько кнопок, мышь отображает изображение за кнопками. Как перенести изображение курсора на передний план?
Я попробовал несколько вещей, как изменение порядка в paintComponent:
@Override
public void paintComponent(Graphics g) {
g.drawImage(cursorimage, x, y, null);
super.paintComponent(g);
}
Я также попытался перекрывая другие методы краски, как paintChildren, paintComponents или даже сам метод краски, но это не кажется, работайте. У одного из участников панели также есть метод drawComponent, и я подозреваю, что это также имеет влияние.
Возможно, я ошибаюсь, но недавно я поговорил с другим программистом, который указал на проблемы с Z-упорядочением при объединении AWT и Swing. Я не знаю о коде, который стоит за этой программой, но, возможно, это может иметь какое-то отношение к этому? – DreadHeadedDeveloper
Я не заглядывал в это. Я обязательно узнаю, может ли это вызвать мою проблему. Благодаря! – Hayeb