我写了一个程序运行没有错误但不是我想要的结果
我原本想在主窗口上加上一菜单栏但运行结果和不加菜单栏一个样为什么呢????
package 窗口的设计;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;
public class 添加菜单栏 extends JFrame{    public 添加菜单栏(){
        super("新建文本文件");
        setUpcomponent();
        setUpEventLister();
        setVisible(true);
    }    private void setUpcomponent()
    {
         setSize(640, 480);
         JMenuBar menubar=new JMenuBar();         JMenu filemenu=new JMenu("文件");//建文件菜单
         JMenuItem menuopen=new JMenuItem("打开");//建菜单项
         //设置快捷键
         menuopen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
         JMenuItem menusave=new JMenuItem("保存");
         menusave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
         JMenuItem menusaveas=new JMenuItem("另存为");
         JMenuItem menuclose=new JMenuItem("关闭");
         menuclose.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, InputEvent.CTRL_MASK));
         filemenu.add(menuopen);
         filemenu.addSeparator();//添加分割线
         filemenu.add(menusave);
         filemenu.add(menusaveas);
         filemenu.addSeparator();
         filemenu.add(menuclose);
         //设置编辑菜单
         JMenu editmenu=new JMenu("编辑");
         JMenuItem menucut=new JMenuItem("剪切");//设置剪切菜单项
         //设置快捷键
         menucut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK));
         JMenuItem menucopy=new JMenuItem("复制");
         menucopy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
         JMenuItem menupaste=new JMenuItem("粘贴");
         menupaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
         editmenu.add(menucut);
         editmenu.add(menucopy);
         editmenu.add(menupaste);
         //设置关于菜单         JMenu aboutmenu=new JMenu("关于");
         JMenuItem mentabout=new JMenuItem("关于添加图形设计");
          aboutmenu.add(mentabout);
          //设置菜单栏
           setJMenuBar(menubar);     }
    private  void setUpEventLister() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
     public static void main(String[] args) {
         
              new 添加菜单栏(); 
       
       
    }    
}

解决方案 »

  1.   


    import java.awt.event.InputEvent;
    import java.awt.event.KeyEvent;
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.KeyStroke;
    public class 添加菜单栏 extends JFrame{  public 添加菜单栏(){
      super("新建文本文件");
      setUpcomponent();
      setUpEventLister();
      setVisible(true);
      }  private void setUpcomponent()
      {
      setSize(640, 480);
      JMenuBar menubar=new JMenuBar();  JMenu filemenu=new JMenu("文件");//建文件菜单
      JMenuItem menuopen=new JMenuItem("打开");//建菜单项
      //设置快捷键
      menuopen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
      JMenuItem menusave=new JMenuItem("保存");
      menusave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
      JMenuItem menusaveas=new JMenuItem("另存为");
      JMenuItem menuclose=new JMenuItem("关闭");
      menuclose.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, InputEvent.CTRL_MASK));
      filemenu.add(menuopen);
      filemenu.addSeparator();//添加分割线
      filemenu.add(menusave);
      filemenu.add(menusaveas);
      filemenu.addSeparator();
      filemenu.add(menuclose);
      //设置编辑菜单
      JMenu editmenu=new JMenu("编辑");
      JMenuItem menucut=new JMenuItem("剪切");//设置剪切菜单项
      //设置快捷键
      menucut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK));
      JMenuItem menucopy=new JMenuItem("复制");
      menucopy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
      JMenuItem menupaste=new JMenuItem("粘贴");
      menupaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
      editmenu.add(menucut);
      editmenu.add(menucopy);
      editmenu.add(menupaste);
      //设置关于菜单  JMenu aboutmenu=new JMenu("关于");
      JMenuItem mentabout=new JMenuItem("关于添加图形设计");
      aboutmenu.add(mentabout);
      //设置菜单栏
      menubar.add(filemenu);
      menubar.add(editmenu);
      menubar.add(aboutmenu);
      setJMenuBar(menubar);  }
      private void setUpEventLister() {
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      }
      public static void main(String[] args) {
        
      new 添加菜单栏();  
        
        
      }

      

  2.   

    menubar.add(filemenu);
    menubar.add(editmenu);
    menubar.add(menusaveas);
    menubar.add(aboutmenu);明显的,LZ忘记将菜单添加到菜单栏中了!!
      

  3.   

    将 JMenu 对象添加到菜单栏以构造菜单,必须将菜单对象加到菜单栏中menubar.add(filemenu);
    menubar.add(editmenu);
    menubar.add(menusaveas);
    menubar.add(aboutmenu);