Как разместить два элемента JMenuItem рядом друг с другом?

Мой код:

JMenuBar bar = new JMenuBar();
JMenu menu = new JMenu("Edit circle");
JMenuItem help = new JMenuItem("Help");
JMenuItem exit = new JMenuItem("Exit");

bar.add(menu);
bar.add(help);
bar.add(exit);

Выход JMenuBar:

ВЫВОД

Я хочу, чтобы вывод был примерно таким:

EXPECTED_OUTPUT

Что мне нужно сделать, чтобы получить ожидаемый результат?


person Spikatrix    schedule 15.05.2015    source источник
comment
Если бы это был я - я бы поставил Help, затем разделитель меню, затем Exit в Application (или аналогичный) JMenu и добавил его слева от меню Edit circle.. Я не вижу, что добавление пунктов меню непосредственно в JMenuBar будет работать хорошо, как показывают ваши эксперименты.   -  person Andrew Thompson    schedule 15.05.2015
comment
Help и Exit не являются JMenu, они должны быть добавлены к JMenu, а это должно быть добавлено к JMenuBar   -  person MadProgrammer    schedule 15.05.2015
comment
@MadProgrammer, значит, добавление JMenuItem к JMenuBar не сработает? Но у меня сейчас эта проблема .   -  person Spikatrix    schedule 15.05.2015
comment
@ЭндрюТомпсон, хорошо. Хорошая идея. Я пойду с этим, если я не найду другого способа решить мою проблему.   -  person Spikatrix    schedule 15.05.2015
comment
@CoolGuy О, это работает, но, как вы говорите, это не работает так, как вы хотите.   -  person MadProgrammer    schedule 15.05.2015
comment
снова JToolBar и теперь JMenuBar имеет BoxLayout   -  person mKorbel    schedule 15.05.2015
comment
@mKorbel, я не знал, что макет можно применить к JMenuBar. Спасибо, что дал мне знать :)   -  person Spikatrix    schedule 15.05.2015
comment
@Крутой парень, которого ты не читал, чтобы попробовать код, связанный с моим комментарием, привязанным к вопросу, опубликованному другим ОП   -  person mKorbel    schedule 15.05.2015
comment
@mKorbel . ммм. Который? Этот?   -  person Spikatrix    schedule 15.05.2015
comment
@Cool Guy хороший - извините :-) aaaah моя ошибка   -  person mKorbel    schedule 15.05.2015


Ответы (1)


вы не можете добавить JMenuItem в JMenuBar. ну попробуй.. сработает..

    JMenuBar bar = new JMenuBar();
    JMenu menu1 = new JMenu("Edit circle");
    JMenu help = new JMenu("Help");
    JMenu exit = new JMenu("Exit");
    bar.add(menu1);
    bar.add(help);
    bar.add(exit);
    exit.addMenuListener(new MenuListener() {

        @Override
        public void menuSelected(MenuEvent e) {
            System.out.println("Exiting");
        }

        @Override
        public void menuDeselected(MenuEvent e) {
        }

        @Override
        public void menuCanceled(MenuEvent e) {
        }
    });

вы не можете добавить ActionListener в JMenu. используйте MenuListener..

ссылка из этого...

person ELITE    schedule 15.05.2015
comment
Это дало ожидаемый результат, но теперь нажатие help и exit ничего не делает. Я добавил ActionListener к ним обоим. :( - person Spikatrix; 15.05.2015
comment
ActinoListener не будет работать на JMenu.. для этого вам нужно использовать JMenuItem или вы можете добавить MenuListener в меню exit...проверьте код... - person ELITE; 15.05.2015
comment
В итоге я использовал mouseListener. Все равно, спасибо за помощь. - person Spikatrix; 15.05.2015