다른 게임 항목이있는 ComboBox와 단어 목록에서 찾을 단어를 보여주는 JList를 사용하여 단어 검색 게임을 만들고 있습니다. 사용자가 콤보 상자에서 항목을 클릭하면 해당 항목과 관련된 모든 단어가 목록에 표시됩니다. 지금은 첫 번째 항목을 선택할 때 작동하지만 두 번째 항목을 선택하여 단어 목록을 변경하려고하면 원본 단어를 삭제하지 않고 해당 단어를 추가하기 만하면됩니다. 나는 그 단어들을 바꾸지 않고 그 단어들을 바꾸고 싶다. 액션 리스너에서 목록 모델을 지우지 만 어떤 이유로 작동하지 않습니다. setAnimalList, setSpaceList, setCompList 메소드는 서브 클래스에서 호출되어 wordList2의 값을 설정합니다.Combobox 선택을 통해 JList 바꾸기
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();
}
}
} 결석 complete example