Проблемы с перерисовкой в ​​Java JPanel - PullRequest
7 голосов
/ 21 августа 2008

У меня есть приложение Java Swing с панелью, которая содержит три JComboBoxe с, которые не рисуют должным образом.
Поля со списком отображаются как стрелка вниз с правой стороны, но без метки текущего выбранного значения.
Поля будут правильно перерисованы, если размер окна будет увеличен или уменьшен на один пиксель.

Все мои поиски в Google указывали revalidate() на JPanel, чтобы исправить это, но это не помогло мне.
Вызов updateUI() на JPanel изменил его с того, что он всегда отображался неправильно на неправильное отображение в половине случаев.

Кто-нибудь еще видел это и нашел другой способ вызвать перерисовку полей со списком?

1 Ответ

6 голосов
/ 21 августа 2008

Можете ли вы дать нам больше информации о том, как вы добавляете поля со списком в JPanel? Это довольно распространенная вещь в Swing, поэтому я сомневаюсь, что это проблема с JVM, но я думаю, что все возможно.

В частности, я бы дважды проверил, чтобы убедиться, что вы не обращаетесь к GUI из каких-либо фоновых потоков. В этом случае, возможно, вы читаете выбор из БД или что-то в этом роде и обновляете JComboBox из фонового потока, что в Swing - большая проблема. См. SwingUtils.invokeLater ().

...