整合JMenu

时间:2018-10-07 02:26:39

标签: java swing jmenu

这是我的大型机

public class MainFrame extends JFrame {

    private ToolBar tb;
    private JeuPanel panel;

    MainFrame() {
        super("TP1");
        setLayout(new BorderLayout());

        panel = new JeuPanel();
        tb = new ToolBar();

        setJMenuBar(tb);
        add(panel, BorderLayout.CENTER);

        setSize(500, 500);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }

这是我的工具栏类:

public class ToolBar extends JFrame {

    private JMenuBar monMenu;
    private JMenu menuFichier;
    private JMenuItem menuDemarrer;
    private JMenuItem menuQuitter;

    public ToolBar() {
    }

    public ToolBar(String title) {
        monMenu = new JMenuBar();

        menuFichier = new JMenu("Menu");
        this.menuDemarrer = new JMenuItem("Demarrer");
        this.menuQuitter = new JMenuItem("Quitter");

        menuQuitter.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });
        monMenu.add(menuFichier);
        menuFichier.add(menuDemarrer);
        menuFichier.add(menuQuitter);

        this.setJMenuBar(monMenu);

        this.setSize(300, 200);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        this.setVisible(true);

    }

这是错误:

Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: tp1.prog.MainFrame.setJMenuBar
    at tp1.prog.MainFrame.<init>(MainFrame.java:27)
    at tp1.prog.TP1Prog.main(TP1Prog.java:20)

嗨,

我不明白为什么我不能设置我的JMenu。它说工具栏类不能是JMenuBar

谢谢

1 个答案:

答案 0 :(得分:1)

在ToolBar.java中添加monMenu的getter方法
然后修改为Mainframe.java

tb = new ToolBar("abc");

setJMenuBar(tb.getMonMenu());