cardlayout in java
CardLayout is a layout manager in Java that allows you to switch between different panels, as if they were cards in a deck. Only one panel is visible at a time, and you can use buttons or other components to switch between them.
Here's an example of how to use CardLayout to create a simple GUI with two panels:
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.awt.CardLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class CardLayoutExample {
public static void main(String[] args) {
JFrame frame = new JFrame("CardLayout Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Create a panel with a CardLayout
JPanel cardPanel = new JPanel(new CardLayout());
// Create two panels with different contents
JPanel panel1 = new JPanel();
panel1.add(new JLabel("This is panel 1."));
JButton button1 = new JButton("Go to panel 2");
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
CardLayout layout = (CardLayout) cardPanel.getLayout();
layout.show(cardPanel, "panel2");
}
});
panel1.add(button1);
JPanel panel2 = new JPanel();
panel2.add(new JLabel("This is panel 2."));
JButton button2 = new JButton("Go to panel 1");
button2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
CardLayout layout = (CardLayout) cardPanel.getLayout();
layout.show(cardPanel, "panel1");
}
});
panel2.add(button2);
// Add the panels to the cardPanel
cardPanel.add(panel1, "panel1");
cardPanel.add(panel2, "panel2");
// Add the cardPanel to the frame
frame.add(cardPanel);
// Set the size of the frame and show it
frame.pack();
frame.setVisible(true);
}
}
In this example, we create a JFrame and a JPanel with a CardLayout. We also create two other JPanels with different contents, and add them to the cardPanel using the add method. We use a unique string identifier for each panel, so we can switch between them using the show method of the CardLayout.
We also create two buttons, one on each panel, that allow the user to switch between the panels by calling the show method with the appropriate string identifier. Finally, we add the cardPanel to the JFrame and show it.
