Tu masz przykład użycia layoutu CardLayout:
package layout;
import javax.swing.*;
import java.awt.*;
public class CardLayoutDemo {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
CardLayoutFrame frame = new CardLayoutFrame();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
});
}
}
**********************************************************************************
package layout;
import javax.swing.*;
/**
* Author: Daniel
*/
public class CardLayoutFrame extends JFrame {
public CardLayoutFrame() {
FramePanel framePanel = new FramePanel();
add(framePanel);
}
}
**********************************************************************************
package layout;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
/**
* Author: Daniel
*/
public class FramePanel extends JPanel {
public final static String BUTTONPANEL = "Card with JButtons";
public final static String TEXTPANEL = "Card with JTextField";
CardLayoutPanel cl;
public FramePanel() {
initializeComponents();
}
private void initializeComponents() {
cl = new CardLayoutPanel();
JPanel comboBoxPane = new JPanel();
String comboBoxItems[] = {BUTTONPANEL, TEXTPANEL};
JComboBox cb = new JComboBox(comboBoxItems);
cb.setEditable(false);
cb.addItemListener(new ComboBoxListener());
comboBoxPane.add(cb);
add(cl);
add(comboBoxPane, BorderLayout.PAGE_START);
}
class ComboBoxListener implements ItemListener {
@Override
public void itemStateChanged(ItemEvent e) {
CardLayout layout = (CardLayout) cl.getLayout();
layout.show(cl, (String) e.getItem());
}
}
}
**********************************************************************************
package layout;
import javax.swing.*;
import java.awt.*;
/**
* Author: Daniel
*/
public class CardLayoutPanel extends JPanel {
private final static String BUTTONPANEL = "Card with JButtons";
private final static String TEXTPANEL = "Card with JTextField";
public CardLayoutPanel() {
setUpPanel();
initializeComponents();
}
private void setUpPanel() {
setLayout(new CardLayout());
}
private void initializeComponents() {
JPanel card1 = new JPanel();
card1.add(new JButton("Button 1"));
card1.add(new JButton("Button 2"));
card1.add(new JButton("Button 3"));
JPanel card2 = new JPanel();
card2.add(new JTextField("TextField", 20));
add(card1, BUTTONPANEL);
add(card2, TEXTPANEL);
}
}