日期:2014-05-20  浏览次数:20765 次

Java JMenuBar无法显示,急求高手
Java JMenuBar无法显示,但是JFrame上空有他的位置,而且我添加上去的JMenu显示在了菜单的下方,并没有菜单的样子
下面是代码:
Java code

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);
    }
}






------解决方案--------------------
删掉

this.getContentPane().add(mainMenuBar);

这一句