Jcombobox Выбор Изменить Слушателя?
Я пытаюсь получить событие для запуска всякий раз, когда выбор сделан из JComboBox
.
проблема, с которой я сталкиваюсь, заключается в том, что нет очевидного addSelectionListener()
метод.
Я пытался использовать actionPerformed()
но он никогда не пожаров.
за исключением переопределения модели для JComboBox
У меня закончились идеи.
как я могу получить уведомление об изменении выбора на JComboBox
?
Edit: я должен извиниться оказывается, я был использование неверного подкласса JComboBox
, но я оставлю вопрос, так как ваш ответ хорош. Начать голосование. :)
6 ответов:
Он должен реагировать на ActionListeners, например:
combo.addActionListener (new ActionListener () { public void actionPerformed(ActionEvent e) { doSomething(); } });
@John Calsbeek справедливо указывает, что
addItemListener()
будет работать, тоже. Вы можете получить 2ItemEvents
, однако, один для отмены выбора ранее выбранного элемента, а другой для выбора нового элемента. Просто не используйте оба типа событий!
пример кода
ItemListener
реализацияclass ItemChangeListener implements ItemListener{ @Override public void itemStateChanged(ItemEvent event) { if (event.getStateChange() == ItemEvent.SELECTED) { Object item = event.getItem(); // do something with object } } }
Теперь мы получим только выбранный элемент.
тогда просто добавьте слушателя в свой JComboBox
addItemListener(new ItemChangeListener());
Я бы попробовал
itemStateChanged()
методItemListener
интерфейс, если решение jodonnell не удается.
вот создание ComboBox добавление слушателя для изменения выбора элемента:
JComboBox comboBox = new JComboBox(); comboBox.setBounds(84, 45, 150, 20); contentPane.add(comboBox); JComboBox comboBox_1 = new JComboBox(); comboBox_1.setBounds(84, 97, 150, 20); contentPane.add(comboBox_1); comboBox.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent arg0) { //Do Something } }); }
вы можете попробовать эти
int selectedIndex = myComboBox.getSelectedIndex();
-или-
Object selectedObject = myComboBox.getSelectedItem();
-или-
String selectedValue = myComboBox.getSelectedValue().toString();