事件监听器类里面的调用,实验输出不报空,但if循环里面横空杀出,上代码,请大神们解惑!谢谢!
public class TEST {
public static void main(String[] args) {
// TODO Auto-generated method stub
new myframe6("窗口6");
}
}
class myframe6 extends Frame{
public myframe6(String title) {
// TODO Auto-generated constructor stub
super(title);
init();
reqisterListener();
}
//两个容器
private Panel card_panel=null;//存放页面文本
private Panel trol_panel=null;
//两个布局
private FlowLayout fy=null;//窗体布局
private CardLayout cr=null;//卡片布局布局
//标签
private Label l1,l2,l3,l4;
//编辑文本
private TextField tf=null;
//控制按钮
private Button b1,b2,b3,b4;
public void init(){
//创建两个容器
Panel card_panel=new Panel();
Panel trol_panel=new Panel();
cr=new CardLayout();
fy=new FlowLayout();
//制定容器布局
card_panel.setLayout(cr);
trol_panel.setLayout(fy);
//窗体的设置
this.setBackground(Color.BLUE);
this.setVisible(true);
this.setSize(300,300);
this.add(card_panel,BorderLayout.CENTER);//卡片摆放位置
this.add(trol_panel, BorderLayout.SOUTH);//按钮摆放位置
//创建实例
l1=new Label("第一页内容",Label.CENTER);
l2=new Label("第二页内容",Label.CENTER);
tf=new TextField();
l3=new Label("第三页内容",Label.CENTER);
l4=new Label("第四页内容",Label.CENTER);
b1=new Button("首页");
b2=new Button("上一页");
b3=new Button("下一页");
b4=new Button("最后一页");
//添加实例
trol_panel.add(b1);
trol_panel.add(b2);
trol_panel.add(b3);
trol_panel.add(b4);
card_panel.add(l1);
card_panel.add(l2);
card_panel.add(l3);
card_panel.add(l4);
card_panel.add(tf);
}
private void reqisterListener(){
BtnListener bt=new BtnListener(); //产生一个事件监听器对象
b1.addActionListener(bt);
b2.addActionListener(bt);
b3.addActionListener(bt);
b4.addActionListener(bt);
}
//实现事件监听器接口
class BtnListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
// System.out.println(e.getActionCommand());
// System.out.println(e.getSource());//获取事件源
Object obj=e.getSource();
if(e.getSource()==b1){
cr.first(card_panel);
}else if(e.getSource()==b2){
cr.previous(card_panel);
}else if(e.getSource()==b3){
cr.next(card_panel);
}else if(e.getSource()==b4){
cr.last(card_panel);
}
}
}
}
1 回答
已采纳

风中打伞的小孩
TA贡献73条经验 获得超20个赞
你这里已经 private Panel card_panel=null;//存放页面文本,然后又 Panel card_panel=new Panel();导致监听器那里card_panel是null
将Panel card_panel=new Panel(); Panel trol_panel=new Panel();
改为card_panel=new Panel(); trol_panel=new Panel();
添加回答
举报
0/150
提交
取消