Java 没有理由让菜单栏不工作吗?

Java 没有理由让菜单栏不工作吗?,java,swing,jpanel,jmenubar,jpanelmenu,Java,Swing,Jpanel,Jmenubar,Jpanelmenu,在这段代码中,我完全不知道为什么我的菜单栏不工作,可能对这里的每个人来说都是琐碎和愚蠢的,但是如果有人能告诉我为什么我的菜单栏没有显示,我会非常感激 [奖金]此外,我不知道为什么“添加(画布);”不起作用,但我通过一些研究设法找到了解决方案,但如果可能的话,对此的解释将是有用的 package drawer; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*

在这段代码中,我完全不知道为什么我的菜单栏不工作,可能对这里的每个人来说都是琐碎和愚蠢的,但是如果有人能告诉我为什么我的菜单栏没有显示,我会非常感激

[奖金]此外,我不知道为什么“添加(画布);”不起作用,但我通过一些研究设法找到了解决方案,但如果可能的话,对此的解释将是有用的

package drawer;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

import java.util.*;

public class Drawer {
public static void main(String[] args) {

        JMenuBar MenuBar; // My Menu code, which doesn't work..
        MenuBar = new JMenuBar();

        JMenu FileMenu = new JMenu("File");
        MenuBar.add(FileMenu);

        JMenuItem FileSaveMenu = new JMenuItem("Save");
        FileMenu.add(FileSaveMenu);


        JMenuItem FileLoadMenu = new JMenuItem("Load");
        FileMenu.add(FileLoadMenu);
        JMenuItem FileExitMenu = new JMenuItem("Exit");
        FileMenu.add(FileExitMenu);


        JMenu HelpMenu = new JMenu("Help");  
        JMenuItem FileAboutMenu = new JMenuItem("About");
        HelpMenu.add(FileAboutMenu); 

        JFrame MainWindow = new JFrame(); 
        FlowLayout layoutObj = new FlowLayout();
        MainWindow.setLayout(layoutObj);
        MainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        MainWindow.setSize(1600, 900); 
        MainWindow.setVisible(true);      


        JPanel ControlPanel = new JPanel();
        ControlPanel.setLayout(new FlowLayout(FlowLayout.TRAILING));     
        ControlPanel.setBorder(new TitledBorder(new EtchedBorder(), "Control Panel"));
        ControlPanel.setPreferredSize(new Dimension(200, 750));              
        MainWindow.getContentPane().add(ControlPanel);

        JPanel Canvas = new JPanel();
        Canvas.setLayout(new FlowLayout(FlowLayout.CENTER)); 
        Canvas.setBorder(new TitledBorder(new EtchedBorder(), "Canvas")); 
        Canvas.setPreferredSize(new Dimension(1300, 750)); 
        MainWindow.getContentPane().add(Canvas); // Where "add(Canvas);" doesn't work and this was the solution after researching..  

        JPanel MessageArea = new JPanel();
        MessageArea.setLayout(new FlowLayout(FlowLayout.CENTER));     
        MessageArea.setBorder(new TitledBorder(new EtchedBorder(), "Messages"));
        MessageArea.setPreferredSize(new Dimension(1500, 100));
        MainWindow.getContentPane().add(MessageArea);
    }

}


最后

我在接下来的24小时里敬拜你,我发誓啊哈。。我讨厌这样一个事实,最难的问题可能需要初学者几个小时,但实际上需要几秒钟来解决。干杯,巴德@如果你想成为一名软件开发人员,你必须学会热爱这些挑战。对我来说,有一点让我无法容忍:-)我喜欢克服挑战,而不是挑战本身,我想:“)再次感谢!当Canvas是
Canvas
时添加(Canvas)不起作用,因为它是一个重量级awt组件,而不是一个轻量级swing组件。总之,您不应该在java.awt中使用扩展
组件的类,除了
容器
MainWindow.setJMenuBar(MenuBar);