[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() ];
            }

        }
    }
Другие вопросы по тегам