//CardLayoutFrame.java
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class CardLayoutFrame extends JFrame{
JButton btPrevious = new JButton("Previous");
JButton btNext = new JButton("Next");
JPanel flowpanel = new JPanel(new FlowLayout());
JPanel cardpanel = new JPanel(new CardLayout());
int currentindex = 0;
public CardLayoutFrame(){
this.getContentPane().add(flowpanel,BorderLayout.SOUTH);
this.getContentPane().add(cardpanel,BorderLayout.CENTER);
cardpanel.add(getCard(1),"Card1");//"Card 1"多一个空格
cardpanel.add(getCard(2),"Card2");//"Card 2"这两处错误导致了程序失败
flowpanel.add(btPrevious);
flowpanel.add(btNext);
ActionListener listener = new ActionListener(){
public void actionPerformed(ActionEvent e){
swithCard();
}
};
btPrevious.addActionListener(listener);
btNext.addActionListener(listener);
this.setSize(300,300);
this.setTitle("test cardlayout");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.show();
}
JPanel getCard(int index){
JPanel panel = new JPanel(new BorderLayout());
JLabel label = new JLabel("<HTML><h1 style = color:red>"+"this is Panel"+index+"</hl></HTML>");
label.setHorizontalAlignment(JLabel.CENTER);
panel.add(label);
return panel;
}
void swithCard(){
CardLayout c1 = (CardLayout)cardpanel.getLayout();
if (currentindex==0){
currentindex++;
c1.show(cardpanel,"Card1");
}
else{
currentindex--;
c1.show(cardpanel,"Card2");
}
}
public static void main(String[] args){
CardLayoutFrame frame = new CardLayoutFrame();
}
}