为了账号安全,请及时绑定邮箱和手机立即绑定

报错出现空指针异常,why???

报错出现空指针异常,why???

什么鬼_呀你 2017-09-03 23:18:56
事件监听器类里面的调用,实验输出不报空,但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();

查看完整回答
反对 回复 2017-09-10
  • 1 回答
  • 0 关注
  • 1336 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信