Я создаю игру поиска слов с помощью ComboBox, в котором есть различные игровые элементы и JList, который показывает слова, которые нужно найти в списке слов. Когда пользователь щелкает элемент в поле со списком, в списке должны отображаться все слова, связанные с этим элементом. Прямо сейчас это будет работать, когда я выберу первый элемент, но если я попытаюсь изменить список слов, выбрав второй элемент, он просто добавит эти слова, не удаляя исходные слова. Я хочу заменить слова, а не добавить их. Я очищаю модель списка в прослушивателе действий, но по какой-то причине она не работает. Методы setAnimalList, setSpaceList и setCompList вызываются из подкласса для установки значений wordList2.
ArrayList<Word> wordList2 = new ArrayList<Word>(12);
String[] gameStrings = {"Space", "Animals", "Computers"};
JList words;
JComboBox menu;
DefaultListModel listModel;
listModel = new DefaultListModel();
words = new JList(listModel);
menu = new JComboBox(gameStrings);
menu.addActionListener(this);
public void actionPerformed(ActionEvent e) {
String selected = (String)menu.getSelectedItem();
if (selected.equals("Animals")) {
setAnimalList(wordList2);
listModel.clear();
for (int i = 0; i < wordList2.size(); i++) {
listModel.addElement(wordList2.get(i).getWord());
}
wordList2.clear();
}
else if (selected.equals("Space")) {
setSpaceList(wordList2);
listModel.clear();
for (int i = 0; i < wordList2.size(); i++) {
listModel.addElement(wordList2.get(i).getWord());
}
wordList2.clear();
}
else if (selected.equals("Computers")) {
setCompList(wordList2);
listModel.clear();
for (int i = 0; i < wordList2.size(); i++) {
listModel.addElement(wordList2.get(i).getWord());
}
wordList2.clear();
}
}
}