Это должно быть недоразумение с моей стороны, но у меня есть следующее:
Я добавил ItemListener в Jcombobox.
В прослушивателе элементов я проверяю в событии, имеет ли он тип ItemSelected.
Если это так, я обновляю значение в JTextPane.Проблема в том, что он работает следующим образом:
Я нажимаю на новое значение в jcombobox и ничего не меняется в поле jtext.Я должен фактически щелкнуть другой компонент, например поле jtext, а затем обновить поле jtext.
Кажется, что фокус должен быть удален из jcombobox, чтобы изменение события отправлялось в код элемента списка элементов.
Это как?он должен работать, или я делаю что-то не так?Можно ли обработать событие, не снимая фокус?
ОБНОВЛЕНИЕ: Этот мой код и метод updateJTextPane называются после того, как я щелкаю по другому компоненту , а не при выборе нового значения в комбинированном списке.Т.е. комбо имеет значение «1», я нажимаю на выпадающий список и нажимаю «2».Текущий выбранный пункт теперь "2".Мой метод не вызывается в этот момент.Я нажимаю на второе поле со списком, второе поле имеет фокус, а затем вызывается мой метод updateJTextPane ().Почему?
ОБНОВЛЕНИЕ 2:
//Code from Netbeans generator
JComboBox myCbx = new javax.swing.JComboBox();
myCbx.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
myCbx.setName("myCbx"); // NOI18N
//My ItemListener
class myItemListener implements ItemListener{
public void itemStateChanged(ItemEvent ie) {
if (ie.getStateChange() == ItemEvent.SELECTED) { // Item was just selected
updateJTextPane();
}
}
}
//add item listener to combo
myCbx.addItemListener(new myItemListener());
ОБНОВЛЕНИЕ 3: Внутренний класс myItemListener добавляется еще к 5 комбинированным спискам в том же JDialog, если это имеет значение вкстати я не знаю спасибо