Вопрос

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

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

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

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top