Используйте метод show()
. Из API Java:
Переход на компонент, который был добавлен в этот макет с указанным именем, с использованием addLayoutComponent. Если такого компонента не существует, то ничего не происходит.
CardLayout#first()
, next()
и previous()
делают нечто подобное.
Иногда, когда я делал такой обмен панелями (хотя я не могу вспомнить на CardLayout
, но прошло уже много времени с тех пор, как я его использовал), мне также приходилось упаковывать кадр снова. Если это не сработает, вы можете позвонить revalidate()
, что даст Swing понять, что компонент необходимо перерисовать.
Вы также можете рассмотреть возможность использования панели с вкладками , так как она делает многое для вас; Я начал проект, пытаясь использовать CardLayout
и решил вместо этого использовать панель с вкладками. Конечно, зависит от того, что вы хотите сделать.