[JAVA] Как вызвать метод "itemStateChanged"
Итак, у меня есть этот метод;
public void itemStateChanged(ItemEvent event){
if(event.getSource() == temasJogo){
if(event.getStateChange() == ItemEvent.SELECTED){
indiceTema = indiceTemas[ temasJogo.getSelectedIndex() ];
}
}
}
только для этого JComboBox
temasJogo = new JComboBox(temas);
temasJogo.addActionListener(this);
Мне нужно, чтобы он изменил атрибут моего класса, чтобы он выбрал другую тему игры. Проблема в том, что мне нигде не удается вызвать этот метод. Я знаю, что ответ будет очень простым, но мне действительно нужна помощь.
2 ответа
Теоретически, itemStateChanged
это метод ItemListener
, предполагая, что вы реализовали interface
каким-то образом.
Для того, чтобы он вызывался, вам нужно зарегистрировать экземпляр ItemListener
с JComboBox
temasJogo.addItemListener(this);
В качестве примера
См. Как использовать поля со списком и Как написать элемент прослушивания для получения более подробной информации.
Просто реализует интерфейс в классе.
Ex.
class sample implements ItemListener
Применить слушателя на JComboBox
temasJogo = new JComboBox(temas);
temasJogo.addItemListener(this);
После этого нижеприведенная функция будет вызываться при изменении элемента.
public void itemStateChanged(ItemEvent event){
if(event.getSource() == temasJogo){
if(event.getStateChange() == ItemEvent.SELECTED){
indiceTema = indiceTemas[ temasJogo.getSelectedIndex() ];
}
}
}