Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка события "выбор пункта меню" 
:(
    Опции темы
Reptor
Дата 7.4.2008, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 1
Всего: 0



Есть несколько разделов меню. Вот пример одного из них:

Код

menu = new JMenu("Options");
menuBar.add(menu);
menuItem = new JMenuItem("Connection");
menuItem.addActionListener(this);
menu.add(menuItem);


Выбор конкретного раздела я обрабатываю таким образом  menuItem.addActionListener(this);

И соответственно есть 

Код

public void actionPerformed(ActionEvent e) {
      JMenuItem source = (JMenuItem)(e.getSource());
      
      setupWindow = new SetupWindow(frame, source.getText());
         setupWindow.setSize(new Dimension(460,200)); 
         setupWindow.setLocationRelativeTo(null);    
         setupWindow.setResizable(false);
         setupWindow.setModal(true);
         setupWindow.setVisible(true);
     
     }    



Так вот вопрос в том что а если у меня много пунктов меню, а в них ещё и подпункты то неужели надо всё обрабатывать в функции 
Код

public void actionPerformed(ActionEvent e)


Там же тогда будет много if.....elseif. Может можно как то покрасивее сделать выбор "что делать". ??


PM MAIL ICQ   Вверх
Kangaroo
Дата 7.4.2008, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 15
Всего: 104



Цитата(Reptor @  7.4.2008,  10:37 Найти цитируемый пост)
Может можно как то покрасивее сделать выбор "что делать". ??

Можно писать обработчики как анонимные классы - на каждую менюшку, свой обработчик.


--------------------
Lost....
PM MAIL MSN   Вверх
Reptor
Дата 7.4.2008, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 1
Всего: 0



Kangaroo, а как это?
PM MAIL ICQ   Вверх
Kangaroo
Дата 7.4.2008, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 15
Всего: 104



Цитата(Reptor @  7.4.2008,  10:59 Найти цитируемый пост)
Kangaroo, а как это? 

Вот так:
Код

                JMenuItem openItem=new JMenuItem("Open..");
        openItem.addActionListener(new ActionListener(){

            public void actionPerformed(ActionEvent arg0) {
                                        // код только для менюшки Опен
                    open(); 
            }
            
        });



--------------------
Lost....
PM MAIL MSN   Вверх
math64
Дата 7.4.2008, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 5
Всего: 72



Лучше использовать Action:
Код

JMenu menu;
JToolBar toolbar;
Action action = new AbstractAction("Open", openIcon) {
  public void actionPerformed(ActionEvent ae) {
    open(); 
  }
};
menu.add(action); // эквивалентно menu.add(new JMenuItem(action));
toolbar.add(action); // отличается от toolbar.add(new JButton(action)); тем что будет показывать текст только как tooltip

Ток же самый Action можно использовать и для меню, и для панели инструментов(toolbar).

Это сообщение отредактировал(а) math64 - 7.4.2008, 11:45
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0442 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.