gpt4 book ai didi

java - 通过组合框选择替换 JList

转载 作者:行者123 更新时间:2023-12-02 07:02:32 25 4
gpt4 key购买 nike

我正在创建一个单词搜索游戏,其中包含一个具有不同游戏项目的 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();
}
}

}

最佳答案

缺少 complete example ,您可以尝试创建并初始化 DefaultListModel 的三个实例,并在组合的监听器中使用 wordList2.setModel() 。此相关example使用 ComboBoxModel 展示了这个想法。

关于java - 通过组合框选择替换 JList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16467310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com