Как использовать CardLayout в моей ситуации

#java #swing #pong

#java #качать #понг

Вопрос:

Я не смог найти способ использовать CardLayout, который работает.

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

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

Комментарии:

1. Пожалуйста, предоставьте код? Почему не вы первый? Как еще мы можем узнать, что вы делаете неправильно?

2. Проверьте комментарий в ответе

3. Но в следующий раз показывайте код, не запрашивайте код.

Ответ №1:

Что вы делаете, так это используете a CardLayout в родительском компоненте, который будет содержать ваши два JPanel s. Когда вы добавляете JPanel s в родительский компонент, вам нужно будет указать a 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
  

Комментарии:

1. Он загружает его (потому что я слышу звуки с первой панели), но он просто показывает пустой фрейм. Вот мой источник: pastebin.com/2L4amutZ

2. @Cg2916: вы вообще не добавляете родительский компонент JFrame в .

3. @Cg2916: Как вы добавили JPanel s к родительскому JPanel элементу?

4. Очевидно, я все еще новичок в этом.