JMenuBar被JButtons覆盖

时间:2019-09-19 15:50:14

标签: java swing

我用swing创建了一个应用程序,并添加了JMenuBar。启动应用程序时,单击JMenu可以看到JMenuItems。但是,当我调整窗口大小时,JMenuItems在我的应用程序中被JButtons覆盖。 这是它的外观:

it should look like

调整大小后的外观如下:

what it actually renders

我已经尝试过改变外观,但这是同样的问题。

我如何加载框架

public void loadFrame() {

        frame = new JFrame("Minecraft Visual Stage Designer");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(new BorderLayout());

        threeDimensionalViewPanel = new ThreeDimensionalView();
        actionContentPanel = new ActionContentPanel();
        status = new JLabel("Loading MCVSD...");

        frame.getContentPane().add(threeDimensionalViewPanel, "Center");
        frame.getContentPane().add(actionContentPanel, "West");
        frame.getContentPane().add(status, "South");
        frame.setSize(1024, 768);

        Toolkit toolkit = Toolkit.getDefaultToolkit();
        Dimension screensize = toolkit.getScreenSize();

        frame.setJMenuBar(createMenuBar());
        frame.setLocation((screensize.width - frame.getWidth()) / 2, (screensize.height - frame.getHeight()) / 2);
        frame.setVisible(true);     

        status.setText("Loaded MCVSD!");

    }

我如何加载JMenuBar

private JMenuBar createMenuBar() {

    JMenuBar menuBar = new JMenuBar();

    JMenu fileMenu = new JMenu("File");
    JMenuItem newMenu = new JMenuItem("New Project...");
    JMenuItem loadMenu = new JMenuItem("Load Project...");
    JMenuItem saveMenu = new JMenuItem("Save...");
    JMenuItem saveAsMenu = new JMenuItem("Save as...");
    JMenuItem exportMenu = new JMenuItem("Export Project...");
    JMenuItem settingsMenu = new JMenuItem("Settings...");
    JMenuItem exitMenu = new JMenuItem("Exit");

    fileMenu.add(newMenu);
    fileMenu.add(loadMenu);
    fileMenu.add(saveMenu);
    fileMenu.add(saveAsMenu);
    fileMenu.addSeparator();
    fileMenu.add(exportMenu);
    fileMenu.addSeparator();
    fileMenu.add(settingsMenu);
    fileMenu.addSeparator();
    fileMenu.add(exitMenu);

    //other menus

    menuBar.add(fileMenu);

    return menuBar;
}

0 个答案:

没有答案