Switching Between Cards in a CardLayout using getParent()
- by plutoisaplanet
Hey everyone,
I am writing an application where I am using the CardLayout to swap between two panels that are placed right on top of one another.
There's a JPanel called Top, and it's layout is the CardLayout. Inside this JPanel is a JPanel called CMatch. Whenever the user clicks the submit button in the CMatch panel, I want a new JPanel added to Top that is custom built based on what the user types in, and it will be shown instead of the original CMatch panel. All of this done using the CardLayout.
These are all different classes in different files, however (the panel Top with CardLayout, the panel CMatch that is inside the Top panel, and the custom built panel).
So i tried using the following to add the new panel to the Top panel and then have it shown:
(this code takes place in the CMatch class):
private void submitButtionActionPerformed(ActionEvent e) {
CardLayout cl = (CardLayout)(this.getParent().getLayout());
cl.addLayoutComponent(new CChoice(), "college_choices");
cl.show(this.getParent(), "college_choices");
}
However, this didn't work. So i was wondering, what am I doing wrong?
Any advice is greatly appreciated, thanks!