I have not been able to find a way to use a CardLayout that works.
I am creating a Pong game. I have a class that extends a JFrame and two classes that extend a JPanel. I am trying to make it so that when the method gets fired in the the first JPanel, it switches from the first JPanel to the second JPanel.
How would I do this, and please provide code.
What you do is use a CardLayout
on the parent component that will hold your two JPanel
s. When you add the JPanel
s to the parent component, you'll need to provide a String
for each one, which will be used later to switch between the cards.
CardLayout cardLayout = new CardLayout();
JPanel parentComponent = new JPanel(cardLayout);
parentComponent.add( jPanel1, "Panel 1" );
parentComponent.add( jPanel2, "Panel 2" );
Then when you want to switch the cards, you need to call a method on the CardLayout
layout manager, so you'll need to get it from the parent component and cast it, or just save a reference to it when you create your parent component. Now to switch the cards:
cardLayout.show( parentComponent, "Panel 1" ); // Shows panel 1
cardLayout.show( parentComponent, "Panel 2" ); // Shows panel 2