Как использовать CardLayout в моей ситуации - PullRequest
0 голосов
/ 04 ноября 2011

Мне не удалось найти способ использовать CardLayout, который работает.

Я создаю игру в понг.У меня есть класс, который расширяет JFrame и два класса, которые расширяют JPanel.Я пытаюсь сделать так, чтобы, когда метод запускался в первой JPanel, он переключался с первой JPanel на вторую JPanel.

Как мне это сделать, и, пожалуйста, предоставьте код.

1 Ответ

4 голосов
/ 04 ноября 2011

Что вы делаете, это используете CardLayout на родительском компоненте, который будет содержать ваши два JPanel s. Когда вы добавляете JPanel s к родительскому компоненту, вам нужно предоставить String для каждого, который будет использоваться позже для переключения между картами.

CardLayout cardLayout = new CardLayout();
JPanel parentComponent = new JPanel(cardLayout);
parentComponent.add( jPanel1, "Panel 1" );
parentComponent.add( jPanel2, "Panel 2" );

Затем, когда вы захотите переключить карты, вам нужно вызвать метод в CardLayout менеджере раскладки, поэтому вам нужно будет получить его из родительского компонента и привести его или просто сохранить ссылку на него, когда Вы создаете свой родительский компонент. Теперь для переключения карт:

cardLayout.show( parentComponent, "Panel 1" ); // Shows panel 1
cardLayout.show( parentComponent, "Panel 2" ); // Shows panel 2
...