Интеграция JMenu - PullRequest
       44

Интеграция JMenu

0 голосов
/ 07 октября 2018

Это мой мэйнфрейм

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 голосов
/ 07 октября 2018

Добавить метод получения monMenu в ToolBar.javaЗатем модифицируется как в Mainframe.java

tb = new ToolBar("abc");

setJMenuBar(tb.getMonMenu());
...