使用javac命令,编译显示的错误提示:(另有一个疑问:第一个文件定义的类在myg.java中定义不行吗?)myg.java:23:Method setMenuBar(java.awt.MenuBar) not found in class myg.第一个文件:Memo.java
定义Memo类
import java.awt.*;
public class Memo extends Frame{
public String motd;
public Memo(String s){
super(s);
motd=s;
resize(300,300);
}
public Memo(){
this("This ia a Memo");
}
public void paint(Graphics g){
g.drawString(motd,50,50);
g.drawString("click anywhere to Exit",70,70);
}
public void start(){
show();
}
public boolean mouseDown(Event e,int x,int y){
//hide the window
hide();
//free up system resources
dispose();
//quit the app
System.exit(0);
return false;
}
public boolean handleEvent(Event e){
if(e.id==Event.WINDOW_DESTROY){
dispose();
System.exit(1);
return true;
}
else{
return super.handleEvent(e);
}}};
///////////////////////////////////////////////////////////
第二个文件 myg.java
import java.awt.*;
import Memo.*;
public class myg{
public static void main(String args[]){
Memo m;
Menu optionMenu;
optionMenu=new Menu("Options");
optionMenu.add(new MenuItem("Option1"));
optionMenu.add(new MenuItem("Option2"));MenuBar mb;
mb=new MenuBar();if(args.length>0){
m=new Memo(args[0]);
}
else{
m=new Memo();
}
mb.add(optionMenu);
setMenuBar(mb);
m.start();
//mb.add();}
};

解决方案 »

  1.   

    第一个文件:Memo.java
    的第一行加入:
    package Memo;
      

  2.   

    zhouwen:
    不对呀!错误增加了。
      

  3.   

    如果能编译过去那就有鬼了,你的myg 类里面哪里有setMenuBar()方法?你的myg类也没有继承有这个方法的类。你应该先构造Memo的实例然后把menu bar设置进去。
      

  4.   

    类定义在一个文件里面都没有问题,但是一个类文件里面只能有一个跟文件名相同的public类,你在myg类里面定义Memo类也没有问题,只要不是public的就可以了。
      

  5.   

    OK!
    zhouwen 兄弟的答案太另人费解了 不过还是要谢谢的。
    谢谢lshefan,有时间见个面,请你吃饭,风餐露宿太苦了。