Взгляните на docs для JPanel.add()
, который он наследует от java.awt.Container
:
Добавляет указанный компонент в конец этого контейнера. Это удобный метод для addImpl (java.awt.Component, java.lang.Object, int). Этот метод изменяет информацию, связанную с компоновкой, и, следовательно, делает недействительной иерархию компонентов. Если контейнер уже был отображен, иерархия должна быть подтверждена после этого, чтобы отобразить добавленный компонент.
blockquote>Акцент добавлен.
Поэтому, если вы измените Контейнер после , он уже отображается, вы должны вызывать
validate()
, чтобы он отображался. Просто вызватьrepaint()
недостаточно. Возможно, вы заметили, что также работает вызовsetVisible(true)
; это потому, что он называетvalidate()
внутренне .
Спасибо @Tobrun за ответ, проблема не в том, что я пропустил accessToken, а в том, что я смешал активность и расположение фрагментов, поэтому компоненты одного из них должны быть в другом. Тем не менее, поиск accessToken заставил меня понять о других возможных.