尝试使用 Java.swing 创建一个 MenuBar,并创建了一个 JMenu() 对象,但它不允许我将它添加到框架中,但不确定为什么?

Trying to create a MenuBar using Java.swing, and created an object of JMenu(), but it wont let me add It to the frame and not sure why?

public class Menu  {

    private JMenu borders;

    //constructor
    public Menu()
    {

        //crate object
        //this.menuBar = new JMenuBar();

        //------create menu items----

        //menu item for borders
        borders = new JMenu("Border");

        // add border options
        borders.setMnemonic(KeyEvent.VK_U);

        //add border options
        borders.add(new JMenuItem("Etched"));
        borders.add(new JMenuItem("Raised"));
        borders.add(new JMenuItem("Matte"));
        borders.add(new JMenuItem("Tilted"));
        borders.add(new JMenuItem("Compounded"));

        JMenuItem quit = new JMenuItem("Quit");
        quit.setMnemonic(KeyEvent.VK_Q);

        borders.add(quit);

        //set Accelerator
        quit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, Event.CTRL_MASK));

        //add action listener
        //@Override
        quit.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e)
            {
                System.exit(0);
            }

        });


    }

}

public class DrawingFrame extends JFrame{
    protected CanvasEditor canvasEditor;
    protected DrawingCanvas drawingCanvas;
    private Menu menu;



    public DrawingFrame()
    {
        this.setTitle("Drawing Application");
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);

        drawingCanvas = new DrawingCanvas();
        drawingCanvas.setMinimumSize(new Dimension(300,700));
        this.add(drawingCanvas);

        JPanel toolBarPanel = getToolBarPanel();

        this.add(drawingCanvas,BorderLayout.CENTER);

        this.add(toolBarPanel,BorderLayout.SOUTH);

        //create menu from class
        this.menu = new Menu();

        //create menu bar
        JMenuBar menuBar = new JMenuBar();

        //add menu to menuBar
        menuBar.add(menu);

error: cannot resolve method 'add'

不确定为什么它不接受 add 方法

drawingFrame class 接受来自 canvasEditorDrawingCanvas 的对象,但不接受来自 Menu class 的对象。

我想创建一个menuBar并向其添加菜单,然后将其放在同一框架上——绘图框架

很确定这是一个简单的修复,但不确定如何修复它

public class Menu  {
    private JMenu borders;

您创建了一个名为 Menu 的 class 并在此 class 中创建了一个 JMenu 的实例。

    this.menu = new Menu();

    //create menu bar
    JMenuBar menuBar = new JMenuBar();

    //add menu to menuBar
    menuBar.add(menu);

然后您创建 Menu class 的实例并尝试将其添加到 JMenuBar,但无法完成,因为 Menu class 是不是 Component.

相反,您想将 borders 变量添加到菜单栏。

这意味着您需要在 Menu class 中创建一个方法,例如:

public JMenu getJMenu()
{
    return borders;
}

然后你使用:

//menuBar.add(menu);
menuBar.add( menu.getJMenu() );