Проблема с наведением курсора мыши на JTabbedPane

#java #swing #mouseover #paint #jtabbedpane

#java #качать #наведение курсора мыши #Краски #jtabbedpane

Вопрос:

Я работаю с приложением, которое испытывает проблемы с рисованием на компьютерах некоторых пользователей, когда мышь проходит по вкладкам в JTabbedPane . У них также иногда возникают аналогичные проблемы с другими интерактивными компонентами, такими как JButton s. Я только когда-либо видел, чтобы эта ошибка возникала при наведении курсора мыши.

Приложение запускается с 1.6.0_20, и я уже попробовал флаг, рекомендованный в обновлении 10, на случай, если это была проблема с D3D (-Dsun.java2d.d3d= false).

Поскольку я новый пользователь, я не могу опубликовать картинку, иллюстрирующую эту ошибку. Лучший пример, который я могу придумать, — это использование Windows paint eraser на изображении, которое создаст нечто подобное тому, что я вижу.

Я ценю любую помощь, которую вы можете предоставить.

Ответ №1:

Без sscce, который демонстрирует описанную вами проблему, трудно быть конкретным, но это напоминает мне об артефакте рендеринга, связанном с установкой opaque свойства на true без полного рендеринга области, определенной границами компонента. В частности, если вы переопределите paintComponent() и «не соблюдаете свойство opaque, вы, скорее всего, увидите визуальные артефакты». Наконец, настройка непрозрачности по умолчанию для некоторых компонентов зависит от внешнего вида, поэтому эффект может зависеть от платформы.

Комментарии:

1. Спасибо за ваш ответ. К сожалению, я не могу предоставить пример кода. Я даже не могу воспроизвести это сам. Я унаследовал приложение и сталкивался со многими случаями, когда paintAll вызывался снова и снова, но только один раз, когда paint был переопределен. Я попытался устранить как можно больше из них на случай, если они являются виновниками. Ошибка для пользователей, которые сталкиваются с этим, похоже, возникает в любом компоненте, где наведение курсора мыши изменяет графику. Т. Е. наведение курсора мыши на вкладку в панели с вкладками или на кнопку.