JLabels не показывает - PullRequest
       22

JLabels не показывает

1 голос
/ 21 февраля 2012

Итак, у меня есть панель, и в зависимости от входа пользователей они заполняются x числом jlabels. Теперь проблема в том, что когда пользователь вводит информацию, метки успешно заполняются, но они не отображаются должным образом на панели; они даже не показывают.

Только когда я изменяю размер рамки, они появляются?

Ответы [ 3 ]

1 голос
/ 21 февраля 2012

обычно вам нужно позвонить:

JPanel yourPanel = new JPanel();
yourPanel.repaint();
yourPanel.validate();
1 голос
/ 21 февраля 2012

Прошло много времени с тех пор, как я занимался программированием на Swing, и я пытаюсь вспомнить метод, который вы должны использовать в контейнере после добавления компонентов.Я думаю, что это revalidate().

0 голосов
/ 21 февраля 2012

invalidate помечает компонент как подлежащий немедленной передаче, поскольку компонент или один из его дочерних элементов был изменен или стал видимым или невидимым. invalidate вызывается для компонента автоматически при добавлении / удалении дочерних компонентов.

validate проверяет допустимость контейнера и, если нет, вызывает doLayout или invalidateTree для вычисления позиций и размеров дочерних компонентов. validate эффективно восстанавливает макеты в случае необходимости, принимая решение о новых размерах и расположении всех компонентов в контейнере.

После добавления / удаления компонентов из контейнера необходимо вызвать validate для родительского элемента, чтобы позволить LayoutManager повторить макет. Вызов validate не назначает перерисовку, поэтому вам может понадобиться позвонить repaint после validate.

...