JMenu: добавить (действие а) против добавления (новый JMenuItem (действие а) - PullRequest
1 голос
/ 29 января 2011

Я создал JMenu и теперь хотел бы добавить пункты меню. Итак, что у меня есть:

  • JMenu jm
  • Акт действия

Теперь, для добавления действия по запуску пункта меню: имеет ли значение, если я использую

jm.add(act);

или

jm.add(new JMenuItem(act));

1 Ответ

1 голос
/ 29 января 2011

Согласно документации для JMenu.add (Action) , он создаст для вас новый пункт меню, поэтому они по сути одинаковы.Так что в конечном итоге это удобный метод.

Однако в нем также говорится:

Начиная с версии 1.3, этот метод больше не является предпочтительным для добавления действий в контейнер.Вместо этого рекомендуется настроить элемент управления с действием с помощью setAction, а затем добавить этот элемент управления непосредственно в контейнер.

И если мы посмотрим на исходный код для JMenu (полученный из GoogleПоиск кода ), вот как выглядит метод add(Action):

public JMenuItem add(Action a) {
    JMenuItem mi = createActionComponent(a);
    mi.setAction(a);
    add(mi);
    return mi;
}

Так что нет большой разницы.Но я все равно следовал бы рекомендациям документации, так или иначе сделав ручное управление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...