import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; public class CardExample extends JPanel { private static final int WINDOW_WIDTH = 640; private static final int WINDOW_HEIGHT = 480; public static void main(final String[] args) { JFrame frame = new JFrame("Menu Example"); CardExample panel = new CardExample(); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.setSize(WINDOW_WIDTH, WINDOW_HEIGHT); frame.setLocationRelativeTo(null); frame.setContentPane(panel); panel.initWidgets(); frame.setVisible(true); } public void initWidgets() { this.setLayout(new BorderLayout()); final CardLayout layout = new CardLayout(); JButton changeMe = new JButton("Change"); add(changeMe, BorderLayout.NORTH); final JPanel cards = new JPanel(layout); add(cards, BorderLayout.CENTER); changeMe.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { layout.next(cards); } }); JPanel card1 = new JPanel(); card1.add(new JLabel("This card has a label on it")); JPanel card2 = new JPanel(); card2.add(new JButton("This card has a button")); JPanel card3 = new JPanel(); card3.add(new JTextField("This one has a text field")); cards.add(card1, "Label card"); cards.add(card2, "Button card"); cards.add(card3, "TextField card"); } }