Я пишу приложение, в котором я использую CardLayout для переключения между двумя панелями, расположенными прямо друг над другом.
Существует JPanel с именем Top, а его макет называется CardLayout. Внутри этой JPanel находится JPanel под названием CMatch. Всякий раз, когда пользователь нажимает кнопку отправки на панели CMatch, я хочу, чтобы в панель Top добавлялась новая JPanel, созданная на основе того, что пользователь вводит, и она будет отображаться вместо исходной панели CMatch. Все это делается с помощью CardLayout.
Однако это все разные классы в разных файлах (панель Top с CardLayout, панель CMatch, находящаяся внутри верхней панели, и пользовательская панель).
Поэтому я попытался использовать следующее, чтобы добавить новую панель на верхнюю панель и затем показать ее:
(этот код имеет место в классе CMatch):
<code>
private void submitButtionActionPerformed(ActionEvent e) {
CardLayout cl = (CardLayout)(this.getParent().getLayout());
cl.addLayoutComponent(new CChoice(), "college_choices");
cl.show(this.getParent(), "college_choices");
}
Однако это не сработало. Так что мне было интересно, что я делаю не так?
Любой совет с благодарностью, спасибо!