CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

一段非常简单代码出错了。不知各位有没有碰到过,我该如何解决?

楼主FBug(花知)2005-06-01 22:16:30 在 Java / J2SE / 基础类 提问

不能再简单了。   一个空的Frame;用addWindowListener();处理windowClosing()事件;  
   
  FileName:   BadWindowListener.java  
  ===================================================================  
  import   java.awt.*;  
  import   java.awt.event.*;  
   
  public   class   BadWindowListener   extends   Frame   {  
   
          public   BadWindowListener()   {  
  super("Cannot   us   addWindowListener(WindowAdapter)");  
  setSize(500,300);  
  setLocation(150,100);  
  addWindowListener(new   WindowAdapter()   {  
          public   void   windowClosing(WindowEvent   e)   {  
  System.exit(0);  
          }  
  });  
  setVisible(true);  
          }  
          public   static   void   main(String[]   args)   {  
  new   BadWindowListener();  
          }  
  }  
  ------------------------------------------------------  
  D:\MyJava\Net>javac   BadWindowListener.java  
  BadWindowListener.java:13:   addWindowListener(java.awt.event.WindowListener)   in    
  java.awt.Window   cannot   be   applied   to   (<anonymous   WindowAdapter>)  
                  addWindowListener(new   WindowAdapter()   {  
                  ^  
  1   error  
   
  D:\MyJava\Net>  
   
   
   
   
  我在网上找了很久,只找到了一处;是德文的。看不懂;  
  http://www4.carookee.com/forum/demoskin/1/59162       一个论坛  
  http://www.worldlingo.com/wl/translate                         德文翻译网站,   (翻了也百翻)  
  在其他机器上应该是能执行的。我搞了很久。就是搞不定; 问题点数:100、回复次数:16Top

1 楼humanity(城市边缘的狼)回复于 2005-06-01 22:39:01 得分 5

你这个   WindowAdapter   是哪个包里面的? 检查一下, 新手最好 用   Eclipse   这样的   开发工具。  
  它的   代码编辑和源码查看很适合   新手。Top

2 楼horisly(SUN YAT-SEN UNIVERSITY (逸仙先生))回复于 2005-06-01 22:47:17 得分 5

Frame   不支持   匿名   WindowAdapter??  
   
  为什么不用JFrame呢??Top

3 楼cwjfzu(飘影)回复于 2005-06-01 23:20:35 得分 5

Frame可以支持  
  匿名WindowAdapter  
  我有写过  
   
  现在没环境看不出什么问题  
   
  找个Eclipse查一下什么问题  
  比在CSDN上问快多了Top

4 楼FBug(花知)回复于 2005-06-01 23:27:45 得分 0

TO:   humanity(总是偷窥   Java   &   XML)  
  就是   java   \   awt   \   event   \   WindowListener.java   。啊  
  D:\Program   Files\Java\jdk1.5\src.zip   里面。用winrar打开它,是这样找吗?  
  我是新手;  
   
   
   
  我发现在最上面加一句:package   ccc;就能编译了。  
  (BadWindowListener.java我放在   .\ccc\下面);  
   
  可是不能执行,结果如下:  
  D:\MyJava\ccc>javac   BadWindowListener.java  
   
  D:\MyJava\ccc>java     BadWindowListener  
  Exception   in   thread   "main"   java.lang.NoClassDefFoundError:   BadWindowListener   (wr  
  ong   name:   ccc/BadWindowListener)  
                  at   java.lang.ClassLoader.defineClass1(Native   Method)  
                  at   java.lang.ClassLoader.defineClass(Unknown   Source)  
                  at   java.security.SecureClassLoader.defineClass(Unknown   Source)  
                  at   java.net.URLClassLoader.defineClass(Unknown   Source)  
                  at   java.net.URLClassLoader.access$100(Unknown   Source)  
                  at   java.net.URLClassLoader$1.run(Unknown   Source)  
                  at   java.security.AccessController.doPrivileged(Native   Method)  
                  at   java.net.URLClassLoader.findClass(Unknown   Source)  
                  at   java.lang.ClassLoader.loadClass(Unknown   Source)  
                  at   sun.misc.Launcher$AppClassLoader.loadClass(Unknown   Source)  
                  at   java.lang.ClassLoader.loadClass(Unknown   Source)  
                  at   java.lang.ClassLoader.loadClassInternal(Unknown   Source)  
   
  D:\MyJava\ccc>  
  Top

5 楼FBug(花知)回复于 2005-06-01 23:32:12 得分 0

每次编译的时候我都运行一个名叫   setPath.bat的文件,里面的内容为:  
  ---------------------------------------------  
  path=%path%;D:\Program   Files\Java\jdk1.5\bin  
  set   classpath=%classpath%;.;D:\MyJava  
  cls  
  cmd  
  --------  
   
  和公司里面的是一样的。可我自己的机器就不能执行。还有就是。我在运行其他代码的时候(目前为止)没发现类似问题,比如说吧addWindowListener(new   ....);删除后就没事了。  
  或则在做一步   implements   ActionListener;在actionPerformed(){}里写方法关闭是能执行的。Top

6 楼FBug(花知)回复于 2005-06-01 23:44:45 得分 0

to   cwjfzu(飘影):  
  Eclipse   用它是吗?  
  哦。那不是我换了开发环境了么?现在问题出现了。我感觉是出在开发环境下面;  
  因为公司的电脑和我的电脑都是用同一张盘的操作系统,开发平台也是从同一个地方下来的。  
  为什么我这里就不行。这个问题捆了我很长时间了。我就是搞它不定。  
  如果我改用Eclipse的话。我想这个问题不会有了。  
  我想学好,学精java。所以我一直用记事本写.  
   
   
  我的开发环境:  
      在java.sun.com里面下了个NetBeans5.0   那里带了个JDK1.5;  
      windows   advanced   server   2000Top

7 楼Goldrush(上天有好生之德)回复于 2005-06-02 00:27:48 得分 5

goodTop

8 楼FBug(花知)回复于 2005-06-02 08:47:03 得分 0

to:   Goldrush  
   
  好?Top

9 楼FBug(花知)回复于 2005-06-02 09:27:22 得分 0

我觉得这个错误提示很是奇怪。  
   
  Exception   in   thread   "main"   java.lang.NoClassDefFoundError:   BadWindowListener    
  (wrong   name:   ccc/BadWindowListener)  
   
  真搞不懂。我的classpath中有D:\MyJava\  
  在D:\Myjava\ccc\BadWindowListener.java也存在。为何提示找不到呢?  
  java.lang.NoClassDefFoundError  
   
  不知道解释器长了什么毛~~~Top

10 楼FBug(花知)回复于 2005-06-02 14:06:47 得分 0

帮我顶上去啊..兄弟们...谁帮我up     up啊   .up的人分也会不少啊。Top

11 楼hellwindy(夜神·月)回复于 2005-06-02 14:44:15 得分 39

经过测试顶楼代码可以运行,如加package的话则应在D:\MyJava\>javac   ccc/BadWindowListener.javaTop

12 楼FBug(花知)回复于 2005-06-02 16:56:43 得分 0

to:hellwindy(夜神·月)  
   
          非常感谢你的解答(刚才我已经不能在发了)  
          这代码在我公司的机器上是能执行的。  
   
  我是D:\MyJava\ccc\>javac   BadWindowListener.java  
  这和D:\MyJava\>javac   ccc/BadWindowListener.java有区别吗?我还不知道。等我晚上回去试试。  
  呵呵。  
  Top

13 楼FBug(花知)回复于 2005-06-02 18:01:26 得分 0

to:hellwindy(夜神·月)  
   
          D:\MyJava\ccc\>javac   BadWindowListener.java   和  
          D:\MyJava\>javac   ccc/BadWindowListener.java   是没有区别的;  
   
  呵呵。是错在执行它的时候;  
  操作方法为:  
  D:\MyJava\>java   ccc.BadWindowListener    
  这时就能运行了。  
  我变成了:       D:\MyJava\ccc\>java   BadWindowListener  
   
   
  ================================================================  
  不过我还是搞不懂。为什么要加package。。。。不加就是不行。  
  感觉就是要先从包里出来,再指定文件在包里面  
  出来又进去就好了。不是老位置吗?还真TMD有毛.Top

14 楼smltiger(罗小虎)回复于 2005-06-02 19:23:33 得分 1

操,一群菜鸟啊。。。  
  QQ:28286880Top

15 楼apollo333()回复于 2005-06-02 22:56:17 得分 40

因为你的classpath是这样的  
   
  set   classpath=%classpath%;.;D:\MyJava  
   
  所以当你java   XXX的时候,java这个命令是去找classpath里的可能的class文件。也就是找MyJava文件夹里的XXX.class文件。  
   
  如果你的XXX文件是在一个package里,  
  比如说  
  package   ccc;  
  public   class   XXX{}  
  这样的话,  
  你就要   java   ccc.XXX   这样。这个ccc也必须在你的MyJava文件夹里,才能找到。  
   
  如果你不想在你的XXX程序里加上package   ccc;这样的东西,你就要再添加你的classpath为  
  set   classpath=%classpath%;.;D:\MyJava;D:\MyJava\ccc;  
  这样也可以。  
   
  用package是一个好习惯,因为你不可以把所有的java文件都放到D:\MyJava里,这样会很混乱。  
  理想的是  
  A.java   在D:\MyJava\a里。  
  B.java   在D:\MyJava\b里。  
  等等。  
  运行的时候就是java   a.A  
  和java   b.B等等。  
   
  但是在javac的时候,也就是编译的时候,一定要到XXX.java的当前目录下编译,不管它在不在package里。  
   
  等编写的文件多的时候,就可以用IDE,象ECLIPSE了。  
  Top

16 楼FBug(花知)回复于 2005-06-03 08:55:53 得分 0

谢谢     apollo333()   ;  
   
  jie~~~~Top

相关问题

  • 代码出错
  • 用AdoConnection时出错,不知道什么原因?代码如下
  • 出错了,但不知错在哪?很短的一句代码.
  • 在 XP 里生成的 VC.net 程序在 Win2000 里出错,出错代码找到,但不知如何解决
  • ado 操作出错代码
  • 代码出错,求救
  • 载文件代码出错
  • 一段出错C代码
  • TWebBrowser控件直接显示网页源代码!但是我不知道为何编译出错。求救!
  • 我提问经常出错,这次不知行不行,下面这段代码应该怎么写?????

关键词

  • .net
  • 代码
  • classpath
  • 执行
  • 文件
  • 编译
  • source
  • badwindowlistener
  • myjava
  • ccc

得分解答快速导航

  • 帖主:FBug
  • humanity
  • horisly
  • cwjfzu
  • Goldrush
  • hellwindy
  • smltiger
  • apollo333

相关链接

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

广告也精彩

反馈

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