Java JMenuBar无法显示,但是JFrame上空有他的位置,而且我添加上去的JMenu显示在了菜单的下方,并没有菜单的样子
下面是代码:public class MainFrame extends JFrame{
JPanel mainPanel = new JPanel();
JMenuBar mainMenuBar = new JMenuBar();

//系统菜单
JMenu m1 = new JMenu("系统管理");
JMenuItem exit = new JMenuItem("退出");
//学生管理菜单
JMenu m2 = new JMenu("学生管理");
JMenuItem addStudent = new JMenuItem("增加");
JMenuItem delStudent = new JMenuItem("删除");
JMenuItem updateStudent = new JMenuItem("修改");
JMenuItem chooseClass = new JMenuItem("学生选课");


// JScrollPane sp = new JScrollPane();//创建滚动栏管理器



public MainFrame()
{
//设置主界面的名字
super("学生信息管理系统");
//设置本程序外观为系统默认(不影响自定义外观,只影响用户没有自定义的部分)
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e)
{
System.err.println(e);
}
//获取用户屏幕大小
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
//设置窗体的最初状态(横向和纵向都为最大)
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
//向菜单栏添加菜单
addMenu();
this.getContentPane().add(mainPanel);
//在菜单栏上添加系统管理的主菜单项
this.setJMenuBar(mainMenuBar);


this.getContentPane().add(mainMenuBar);


this.setBounds(0, 0, screenSize.width, screenSize.height);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}

private void addSystmMenu()
{
m1.add(exit);
}

private void addStudentMenu()
{
m2.add(addStudent);
}

private void addMenu()
{
// mainMenuBar.setVisible(true);
mainMenuBar.setToolTipText("您可以通过打开菜单进行更多操作");
mainMenuBar.add(m1);
mainMenuBar.add(m2);
}
}

解决方案 »

  1.   

    删掉  this.getContentPane().add(mainMenuBar);这一句
      

  2.   

    删掉this.getContentPane().add(mainMenuBar);
    修改:
     
       private void addMenu()
        {
    //      mainMenuBar.setVisible(true);
            mainMenuBar.setToolTipText("您可以通过打开菜单进行更多操作");
            m1.add(exit);
            mainMenuBar.add(m1);
            m2.add(addStudent);
            m2.add(delStudent);
            m2.add(updateStudent);
            m2.add(chooseClass);
            mainMenuBar.add(m2);
        }