CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

請分析NullPointerException的產生原因?(付程序)

楼主wyboalone(wybo)2002-03-14 19:17:42 在 Java / J2SE / 基础类 提问

請深入分析一下其中的原因?謝謝  
  ---------------------------------------------  
  import   java.awt.*;  
  import   java.awt.event.*;  
  class   ButtonHandler   implements   ActionListener{  
  public   void   actionPerformed(ActionEvent   e){  
  System.exit(0);  
   
  }  
  }  
  public   class   TestButton{  
  private   Frame   f;  
  private   Button   b;  
  public   TestButton(){  
  Frame   f=new   Frame("Test");  
  Button   b=new   Button("Press   me");  
  b.addActionListener(new   ButtonHandler());  
  f.add(b,BorderLayout.CENTER);  
  f.pack();  
  f.setVisible(true);  
  }  
  public   void   launchFrame(){  
   
  }  
  public   static   void   main(String   []args){  
  TestButton   guiApp=new   TestButton();  
  //guiApp.launchFrame();  
  }  
  }//運行成功  
  -----------------------------------------------------------------  
  import   java.awt.*;  
  import   java.awt.event.*;  
  class   ButtonHandler   implements   ActionListener{  
  public   void   actionPerformed(ActionEvent   e){  
  System.exit(0);  
   
  }  
  }  
  public   class   TestButton{  
  private   Frame   f;  
  private   Button   b;  
  public   TestButton(){  
  Frame   f=new   Frame("Test");  
  Button   b=new   Button("Press   me");  
  }  
  public   void   launchFrame(){  
  b.addActionListener(new   ButtonHandler());  
  f.add(b,BorderLayout.CENTER);  
  f.pack();  
  f.setVisible(true);  
   
  }  
  public   static   void   main(String   []args){  
  TestButton   guiApp=new   TestButton();  
  guiApp.launchFrame();  
  }  
  }  
  /**Exception   in   thread   "main"   java.lang.NullPointerException  
                  at   TestButton.launchFrame(TestButton.java:18)  
                  at   TestButton.main(TestButton.java:25)  
  */ 问题点数:100、回复次数:8Top

1 楼SuperMMX(笑天子)回复于 2002-03-14 19:32:06 得分 20

呵呵,   在   TestButton   中定义的   Frame   f   和   Button   b   和在构造  
  函数中的不是一个.Top

2 楼wyboalone(wybo)回复于 2002-03-14 19:35:21 得分 0

沒明白,請詳細說說....Top

3 楼asiaec(星星是你看我的眼睛)回复于 2002-03-14 19:41:53 得分 20

Frame   f   和   Button   b    
   
  把F   和   B   的初始化拿到构造函数外面来Top

4 楼peacock_king(孔雀王)回复于 2002-03-14 19:53:31 得分 0

要改的部分如下(已经改过了):  
  public   class   TestButton{  
  private   Frame   f;  
  private   Button   b;  
  public   TestButton(){  
  f=new   Frame("Test");  
  b=new   Button("Press   me");  
  }  
  Top

5 楼peacock_king(孔雀王)回复于 2002-03-14 20:03:16 得分 60

因为你原来的写法,是在构造函数中定义并创建的f,b。  
  不会连变量定义与赋值都忘了吧?  
   
  你定义的private   Frame   f   and   Button   b,并未在构造函数里用到,也就是没有为它们创建对象。  
  在构造函数中,你又定义了一个新的f,并且初始化了。  
  而你创建的f,b只适用于TestButton()本身,是局部的,并且覆盖全局的f与b。  
  Top

6 楼xhh(霹雳游侠)回复于 2002-03-14 20:05:58 得分 0

同意楼上!  
  好粗心啊~~  
  呵呵~~Top

7 楼udoo(udoo)回复于 2002-03-14 21:38:20 得分 0

建议贴代码时加上缩进Top

8 楼wyboalone(wybo)回复于 2002-03-15 06:51:22 得分 0

谢谢Top

相关问题

  • 一个程序两个结果,请高手分析原因
  • 程序运行时出现地址错误,请大家帮忙分析原因.
  • 高分求下面一段程序运行输出结果,要具体分析一下原因才有分
  • 急救! 我刚做了个站!被人把程序修改了!帮我分析一下原因!
  • 语法分析程序
  • 急!程序分析,修改
  • 急,急,请教,在线等待!关于数据库字段查找的程序.请帮忙分析不能执行的原因..
  • 这个程序是算阶乘的,从语法分析上看可以运行啊,但是结果却都是0??谁解释一下各种原因???
  • 我的ASP网站被人攻破两次了,并且被修改了源程序,请高手帮我分析原因!100高分,决不食言!
  • 求助!我的这个程序速度非常慢~,帮我分析一下是什么原因~?(内详细~有关字符处理的)

关键词

  • testbutton
  • buttonhandler
  • frame
  • awt
  • button
  • private
  • import java

得分解答快速导航

  • 帖主:wyboalone
  • SuperMMX
  • asiaec
  • peacock_king

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo