回 帖 发 新 帖 刷新版面

主题:这个程序为什么会出现异常

[b]package z;
import java.awt.*;
  
class n extends Frame{ 
    MenuBar menuBar=new MenuBar();
    Menu fileMenu=new Menu("文件");
    Menu newMenu=new Menu("新建");
    MenuItem openItem =new MenuItem("打开");
    MenuItem closeItem =new MenuItem("关闭");
    MenuItem saveItem =new MenuItem("保存");
    MenuItem printItem =new MenuItem("打印");
       
    
    Menu editMenu=new Menu("编辑");
    MenuItem cutItem =new MenuItem("剪切");
    MenuItem copyItem =new MenuItem("复制");
    MenuItem pasteItem =new MenuItem("粘切");
    
    MenuItem subItem1 =new MenuItem("DOC文档");
    MenuItem subItem2 =new MenuItem("JAVA文件");
    MenuItem subItem3 =new MenuItem("HTML文件");
    
    n(String title){ 
        super(title);
        setMenuBar(menuBar);
        menuBar.add(fileMenu);
        menuBar.add(editMenu);
        fileMenu.add(newMenu);
        fileMenu.add(openItem);
        fileMenu.add(closeItem);
        fileMenu.add(saveItem);
        
        saveItem.setEnabled(false);
        fileMenu.addSeparator();
        fileMenu.add(printItem);        
        editMenu.add(cutItem);
        editMenu.add(copyItem);
        editMenu.add(pasteItem);
        
        newMenu.add(subItem1);
        newMenu.add(subItem2);
        newMenu.add(subItem3);
    }
}

 
class  FrameDemowithMenu extends Frame
{
    
    public static void main(String[] args)
    {  
            n window=new n(" ");
            window.setSize(400,400);
            window.setTitle("你好!");
            window.pack();
            window.setVisible(true);
      
    
    }
}[/b]

回复列表 (共5个回复)

沙发

你运行时候的错误  你定义了一个包z  当编译完了以后会找你包内的Class文件  如果你直接运行肯定不会生成包Z的 所以会报找不到相应class的异常   你可以把package删除  或者这样运行:
javac -d . FrameDemowithMenu.java(这时候会在相应目录中自动生成一个名为z的文件夹  里面存放class文件)
java z.FrameDemowithMenu   这样就没问题了.

板凳

这样不行啊!

3 楼

肯定可以的 我试过了  
javac -d . FrameDemowithMenu.java  
-d 后面的点号左右各有一个空格

4 楼

不好意思,是我弄错了!
那我想请教以下,如何设置关闭这个菜单?

5 楼

你是说关闭这个窗口吗???你程序写的太乱了 其实没必要创建两个类的 这样加关闭窗口的事件比较麻烦 我帮你改了一下  这样加事件比较方便点   我随便改了下直接贴上了 改的有点乱 你自己调整下吧  写AWT基本都是这个结构的 你这个结构写的不是很合理~~~
 import java.awt.*;
import java.awt.event.*;
  
class n extends Frame{ 
    
    
    n(String title){ 
        super(title);
         setSize(400,400);
         MenuBar menuBar=new MenuBar();
    Menu fileMenu=new Menu("文件");
    Menu newMenu=new Menu("新建");
    MenuItem openItem =new MenuItem("打开");
    MenuItem closeItem =new MenuItem("关闭");
    MenuItem saveItem =new MenuItem("保存");
    MenuItem printItem =new MenuItem("打印");
       
    
    Menu editMenu=new Menu("编辑");
    MenuItem cutItem =new MenuItem("剪切");
    MenuItem copyItem =new MenuItem("复制");
    MenuItem pasteItem =new MenuItem("粘切");
    
    MenuItem subItem1 =new MenuItem("DOC文档");
    MenuItem subItem2 =new MenuItem("JAVA文件");
    MenuItem subItem3 =new MenuItem("HTML文件");
           setTitle("你好!");
           pack();
           setVisible(true);
           addWindowListener(new WindowAdapter()
        {
            public void windowClosing(WindowEvent e)
            {
                 System.exit(0);
            }
        });
        setMenuBar(menuBar);
        menuBar.add(fileMenu);
        menuBar.add(editMenu);
        fileMenu.add(newMenu);
        fileMenu.add(openItem);
        fileMenu.add(closeItem);
        fileMenu.add(saveItem);
        
        saveItem.setEnabled(false);
        fileMenu.addSeparator();
        fileMenu.add(printItem);        
        editMenu.add(cutItem);
        editMenu.add(copyItem);
        editMenu.add(pasteItem);
        
        newMenu.add(subItem1);
        newMenu.add(subItem2);
        newMenu.add(subItem3);
    }
   public static void main(String args[])
   {
         new n("");
   }
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册