как узнать, какой список был выбран в JAVA

у меня есть два списка выбора в программе, я добавил ItemListener в оба списка. Как узнать, какой список был выбран пользователем в itemStateChanged (ItemEvent ie)?

есть ли способ определить источник события в случае ItemListener, поскольку в ActionListener есть getSource().


person mohit kumar    schedule 01.10.2015    source источник
comment
ItemEvent#getSource вернет ссылку на объект, сгенерировавший событие. Если вы прочитаете JavaDocs, вы увидите, что и ItemListener, и ActionListener расширены из одной и той же базы EventObject, где фактически определено getSource   -  person MadProgrammer    schedule 01.10.2015


Ответы (2)


В itemStateChanged(ItemEvent ie) вы получаете ItemEvent.

Глядя на ItemEvent API, у вас есть getItemSelectable() метод :

public ItemSelectable getItemSelectable()

Возвращает инициатора события.

Используй это.

person Jordi Castilla    schedule 01.10.2015
comment
извините ... я не понимаю вашу точку зрения ... не могли бы вы добавить ответ или уточнить? Combobox — это выбираемые элементы, верно? так что IMO этот метод вернет Combobox, создавший событие, не так ли? Я неправильно понимаю метод? - person Jordi Castilla; 01.10.2015
comment
Хммм, это на самом деле хороший момент, менее очевидный, чем getSource, я воспринял это как getItem - не обращайте внимания на мою глупость ;) - person MadProgrammer; 01.10.2015
comment
Не волнуйтесь :) Это случается со мной все время. Кроме того, вы здесь легенда, поэтому я хотел быть уверенным в своих словах, потому что английский не мой родной язык, и иногда я упускаю очевидные вещи. Спасибо4это!! - person Jordi Castilla; 01.10.2015

Как узнать, какой список был выбран пользователем

ItemEvent#getSource вернет ссылку на объект, сгенерировавший событие.

Если вы прочитали JavaDocs вы увидите, что и ItemEvent, и ActionEvent происходят из одной и той же базы EventObject, где фактически определяется getSource

person MadProgrammer    schedule 01.10.2015