import java.awt.*;
import java.awt.event.*;
class myFrame extends Frame
{
Panel pMain,pTop,p1,p2,p3,p4;
CardLayout card;
Choice ch;
myFrame(String s)
{
super(s);
pTop=new Panel();
ch=new Choice();
ch.add("红");
ch.add("蓝");
ch.add("绿");
ch.add("黑");
pTop.add(ch);
p1=new Panel();
p1.setBackground(Color.red);
p2=new Panel();
p2.setBackground(Color.blue);
p3=new Panel();
p3.setBackground(Color.green);
p4=new Panel();
p4.setBackground(Color.black);
card=new CardLayout();
pMain=new Panel();
pMain.setLayout(card);
pMain.add("红",p1);
pMain.add("蓝",p2);
pMain.add("绿",p3);
pMain.add("黑",p4);
ch.addItemListener(new Ch_Lis());
this.addWindowListener(new Win_Lis());
this.add(pMain,BorderLayout.CENTER);
this.add(pTop,BorderLayout.NORTH);
this.setSize(300,300);
this.setBackground(Color.orange);
this.show();
}
private class Ch_Lis implements ItemListener
{
public void itemStateChanged(ItemEvent e)
{
if(((String)e.getItem()).equals("红"))
card.show(pMain,"红");
else if(((String)e.getItem()).equals("蓝"))
card.show(pMain,"蓝");
else if(((String)e.getItem()).equals("绿"))
card.show(pMain,"绿");
else
card.show(pMain,"黑");
} }
private class Win_Lis extends WindowAdapter
{
public void windowClosing(WindowEvent e) {System.exit(0);}
}
}
public class LayoutShow
{
public static void main(String[] args)
{
myFrame f=new myFrame("卡片布局");
}
}
import java.awt.event.*;
class myFrame extends Frame
{
Panel pMain,pTop,p1,p2,p3,p4;
CardLayout card;
Choice ch;
myFrame(String s)
{
super(s);
pTop=new Panel();
ch=new Choice();
ch.add("红");
ch.add("蓝");
ch.add("绿");
ch.add("黑");
pTop.add(ch);
p1=new Panel();
p1.setBackground(Color.red);
p2=new Panel();
p2.setBackground(Color.blue);
p3=new Panel();
p3.setBackground(Color.green);
p4=new Panel();
p4.setBackground(Color.black);
card=new CardLayout();
pMain=new Panel();
pMain.setLayout(card);
pMain.add("红",p1);
pMain.add("蓝",p2);
pMain.add("绿",p3);
pMain.add("黑",p4);
ch.addItemListener(new Ch_Lis());
this.addWindowListener(new Win_Lis());
this.add(pMain,BorderLayout.CENTER);
this.add(pTop,BorderLayout.NORTH);
this.setSize(300,300);
this.setBackground(Color.orange);
this.show();
}
private class Ch_Lis implements ItemListener
{
public void itemStateChanged(ItemEvent e)
{
if(((String)e.getItem()).equals("红"))
card.show(pMain,"红");
else if(((String)e.getItem()).equals("蓝"))
card.show(pMain,"蓝");
else if(((String)e.getItem()).equals("绿"))
card.show(pMain,"绿");
else
card.show(pMain,"黑");
} }
private class Win_Lis extends WindowAdapter
{
public void windowClosing(WindowEvent e) {System.exit(0);}
}
}
public class LayoutShow
{
public static void main(String[] args)
{
myFrame f=new myFrame("卡片布局");
}
}
具体用法查API吧 好像是要new出个cardLayout的对象来 然后用addLayoutComponent()在上面加panel,加的时候给每个panel起个名字,最后在setLayout()的时候把刚才那个cardLayout当参数传进去,点击事件的时候直接用panel的名字调用cardLayout对象的show方法,应该是这样吧,记不太清了