CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

新手提问:此代码是例题,能够编译但是不能够执行,问什么?

楼主tingyiyan(流动的水)2005-09-08 18:26:57 在 Java / J2SE / 基础类 提问

//这是java的例题,在我的机器上能够正常javac编译,但是java执行就提示错误。提示的执行错误如下:  
  /*  
  Exception   in   thread   "main"   java.lang.NullPointerException  
                  at   SwingExample.launchFrame(SwingExample.java:22)  
                  at   SwingExample.main(SwingExample.java:31)  
  */  
  //代码如下:  
   
  import   java.awt.*;  
  import   javax.swing.*;  
  public   class   SwingExample  
  {  
  private   JFrame   f;  
  private   JPanel   p;  
  private   JButton   bw,bc;  
  private   JButton   bfile,bsave;  
  public   SwingExample()  
  {  
  f=new   JFrame("SwingExample");  
  bw=new   JButton("West");  
  bc=new   JButton("Work   Space   region");  
  bfile=new   JButton("File");  
  bsave=new   JButton("Save");  
  }  
  public   void   launchFrame()  
  {  
  Container   c=f.getContentPane();  
  c.add(bw,BorderLayout.WEST);  
  c.add(bc,BorderLayout.CENTER);  
  p.add(bfile);  
  p.add(bsave);  
  c.add(p,BorderLayout.NORTH);  
  f.pack();  
  f.setVisible(true);  
  }  
  public   static   void   main(String[]   args)  
  {  
  SwingExample   gui=new   SwingExample();  
  gui.launchFrame();  
  }  
  }; 问题点数:20、回复次数:5Top

1 楼zebra007(呼呼)回复于 2005-09-08 18:33:22 得分 11

p没有new  
  所以产生了空指针操作的异常  
  在构造函数里加:  
  p=     new   JPanel();Top

2 楼nintha(注意休息)回复于 2005-09-08 18:34:33 得分 7

import   java.awt.*;  
  import   javax.swing.*;  
  public   class   SwingExample  
  {  
  private   JFrame   f;  
  private   JPanel   p;  
  private   JButton   bw,bc;  
  private   JButton   bfile,bsave;  
  public   SwingExample()  
  {  
  f=new   JFrame("SwingExample");  
  bw=new   JButton("West");  
  bc=new   JButton("Work   Space   region");  
  bfile=new   JButton("File");  
  bsave=new   JButton("Save");  
  p=new   JPanel(); //   加上这一行  
  }  
  public   void   launchFrame()  
  {  
  Container   c=f.getContentPane();  
  c.add(bw,BorderLayout.WEST);  
  c.add(bc,BorderLayout.CENTER);  
  p.add(bfile);  
  p.add(bsave);  
  c.add(p,BorderLayout.NORTH);  
  f.pack();  
  f.setVisible(true);  
  }  
  public   static   void   main(String[]   args)  
  {  
  SwingExample   gui=new   SwingExample();  
  gui.launchFrame();  
  }  
  };  
  Top

3 楼fox_blue(蓝狐)回复于 2005-09-08 18:37:39 得分 2

---p.add(bfile);  
  p没有初始化,当然会抛出空指针异常Top

4 楼tingyiyan(流动的水)回复于 2005-09-08 18:38:08 得分 0

是的,的确少了这一句。  
  ok了。  
  谢谢!Top

5 楼jwbecalm(跟随你的心)回复于 2005-09-08 18:52:58 得分 0

程序在编译时通得过,并不表示在运行时不出错。  
  RuntimeException就是在运行时抛出的,表示程序里还有BUG,需要改进。完成好的程序应保证尽量不抛出  
  RuntimeException.  
   
   
  10.常见的RuntimeException   :ArithmeticException,ClassCastException,IllegalArgumentException,IndexOutOfBoundsException,NullPointerException.Top

相关问题

  • 菜鸟提问 一段代码编译出错,自己解决不了 请教!
  • (菜鸟提问,含代码)这个程序编译通过了,可是运行就出错.为什么??
  • 菜鸟提问:有关通信的一段代码,其中的key表示啥啊?俺编译通不过
  • 提问关于编译
  • VC编译器的提问
  • 编译为本机代码的问题
  • bcb能不能编译c++源代码。
  • 送分!编译器的源代码!
  • 如何编译为P代码?
  • 在visual.net中能编译C++代码吗?

关键词

  • 执行
  • swingexample
  • launchframe
  • bsave
  • jbutton
  • bfile
  • borderlayout
  • runtimeexception
  • bw
  • 程序

得分解答快速导航

  • 帖主:tingyiyan
  • zebra007
  • nintha
  • fox_blue

相关链接

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

广告也精彩

反馈

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