JDialog избавиться и перекрасить проблему - PullRequest
0 голосов
/ 30 марта 2011

В приложении jnlp мы создаем модальное всплывающее окно, расширяющееся от javax.swing.JDialog, и вызываем dispose (), чтобы при необходимости скрыть диалог.Однако иногда конечный клиент получает проблему перекраски.Диалог на самом деле не исчезает, и его родительское окно выглядит грязным.Я не мог воспроизвести, но это происходило много раз на конечном клиентском ПК.Я думаю, есть две возможные причины:

  • В нашем приложении есть нить, обновляющая курсор напрямую.Однако я не могу доказать, что этот поток является основной причиной проблемы.
  • Периодически у нас есть другой процесс, который интенсивно использует процессор в течение нескольких секунд.Я попытался загрузить процессор, но не смог воспроизвести проблему тоже.

Какой-нибудь совет для меня в этом случае?

Спасибо!

1 Ответ

0 голосов
/ 31 марта 2011

Похоже, ответ в вопросе; -)

Наличие потока ( не EDT ), обновляющего пользовательский интерфейс (курсор в вашем случае), может привести к такому видупроблема.

Следовательно, убедитесь, что ваш поток вызывает SwingUtilities.invokeLater() (или invokeAndWait() в зависимости от ваших потребностей).

Другая возможность (но это во многом зависит от того, что делает ваш поток, бездальнейшее описание с вашей стороны, трудно сказать) будет использовать SwingWorker вместо потока.

...