谁来帮我看看这个java程序

来源:百度知道 编辑:UC知道 时间:2024/06/18 13:45:53
import java.awt.*;
import java.awt.event.*;

public class CardLayoutWindow extends Frame implements ActionListener{

Panel cards;
CardLayout CLayout=new CardLayout();

public CardLayoutWindow() {
setLayout(new BorderLayout());

Panel cp=new Panel();
Button bt= new Button("卡片切换");
bt.addActionListener(this);
cp.add(bt);
add("North",cp);

cards =new Panel();
cards.setLayout(CLayout);

Panel p1=new Panel();
p1.add(new Button("Button 1"));
p1.add(new Button("Button 2"));
p1.add(new Button("Button 3"));

Panel p2=new Panel();
p2.add(new TextField("TextField",20));

add("Center",cards);
}

public void actionPerformed(ActionEvent e){
CLayout.next(cards)

首先,三个按钮加到面板p1上,而没有把面板加到容器上,即:add(p1,BorderLayout.SOUTH);还有你p2这个面板也没加上,故也显示不出你想要的文本区;你自己加上去把。
注:add("North",cp); 是过时的api吧,我用jdk1.6编译时会提示“使用或覆盖了已过时的api”。
其次,你说的点那个按钮没反应,因为你根本就没有定义cards的变化,点那个按钮就还是空白显示;
楼主在cards.setLayout(CLayout); 后面加上下面的语句:
for(int i=1;i<=20;i++)
{cards.add("i am"+i,new Button("我是第"+i+"个按钮"));
}点那个按钮就能看到变化啦。