Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Связать значение с JMenuItem() и получить его при выборе / 3 сообщений из 3, страница 1 из 1
15.02.2006, 20:23
    #33547579
anvano
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать значение с JMenuItem() и получить его при выборе
Создаю Popup менюшку

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
   JMenuItem   menuItem =  null ; 
    for ( int  i= 0 ;i<features.length;i++)
   {
       menuItem =  new  JMenuItem(features[i]);
       menuItem.addActionListener(ActList);
       jPopup.add(menuItem);
   }

потом в ActionListener отлавливаю что нажалось
Код: plaintext
1.
2.
3.
4.
5.
    ....... 
    public   void  actionPerformed(ActionEvent e) {
      JMenuItem source = (JMenuItem)(e.getSource());
       [color=blue]<<вот тут вопрос>>[/color]
   }   

Как мне узнать какой пункт меню выбран?
Текст меню я получить могу
Код: plaintext
 source.getText()
НО текст пункта меню мне ничего не говорит, т.к. он может быть одинаковый у некоторых пунктов (особенности предметной области)

Как мне при создании пункта меню связать с ним какой-либо уникальный числовой идентификатор, который я потом смогу прочитать в обработчике нажатия?

В какое свойство писать?

Перерыл все примеры вот тут
http://java.sun.com/docs/books/tutorial/uiswing/components/menu.html

там везде только текст пункта меню отслеживается, никакого намёка на какой либо уникальный ID пункта меню ...
...
Рейтинг: 0 / 0
16.02.2006, 10:10
    #33548164
hinotf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать значение с JMenuItem() и получить его при выборе
Переопредели класс JMenuItem и добавь в него поле, хранящее идентификатор и методы set и get.

Nai tiruvantel ar varyuvantel i Valar tieyanna nu vilya
...
Рейтинг: 0 / 0
16.02.2006, 10:25
    #33548210
anvano
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать значение с JMenuItem() и получить его при выборе
Ага, наследовать свой класс мне как раз в голову пришло когда уже с работы шел домой :)

Но как подсказали правильнее будет

Код: plaintext
1.
JMenuItem.setActionCommand(String actionCommand)

а потом проверять в обработчике событий
Код: plaintext
1.
2.
3.
4.
5.
String actionCommand = e.getActionCommand();
 if  (ACTION_COMMAND.equals(actionCommand)){
....
} else  ...

...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Связать значение с JMenuItem() и получить его при выборе / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]