如何将我的菜单栏类添加到我的主类中的JFrame

时间:2016-11-09 11:54:39

标签: java swing user-interface

我不确定将我的MenuDriver类连接到Main类中的JFrame的代码。我知道这可以在主课程中完成,但我被告知要为菜单设一个单独的课程。

Main-
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.MenuBar;

import javax.swing.JFrame;

public class GraphicMain {

    public static void main(String[] args) {
        JFrame frame = new JFrame("Graphics Program");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 600);

        MenuDriver menu = new MenuDriver();

        frame.pack();
        frame.setVisible(true);
    }
}

菜单类 -

import java.awt.*;

import javax.swing.*;
public class MenuDriver {

    public MenuDriver(){
        JMenuBar menubar = new JMenuBar();

        JMenu file = new JMenu("File");
        menubar.add(file);

        JMenuItem load = new JMenuItem("Load");
        file.add(load);

        JMenuItem save = new JMenuItem("Save");
        file.add(save);

        JMenuItem exit = new JMenuItem("Exit");
        file.add(exit);

        JMenu help = new JMenu("Help");
        menubar.add(help);

        JMenuItem info = new JMenuItem("Info");
        file.add(info);
        }
}

1 个答案:

答案 0 :(得分:0)

在您的MenuDriver类中,您需要创建一个方法getMenuBar(),它将返回您在类的构造函数中创建的JMenuBar。

然后,您需要使JMenuBar成为类的实例变量:

public class MenuDriver 
{
    private JMenubar menuBar; // added

    public MenuDriver()
{
        //JMenuBar menubar = new JMenuBar();
        menubar = new JMenuBar();
        ...

我会让你写getMenuBar()方法。

现在,在您的主要课程中,您可以使用以下方式引用菜单栏:

MenuDriver menu = new MenuDriver();
frame.setJMenuBar( menu.getMenuBar() );