0

さまざまなゲーム アイテムを含む ComboBox と、単語リストにある単語を表示する JList を使用して、単語検索ゲームを作成しています。ユーザーがコンボボックス内の項目をクリックすると、その項目に関連付けられたすべての単語がリストに表示されます。現時点では、最初の項目を選択すると機能しますが、2 番目の項目を選択して単語リストを変更しようとすると、元の単語が削除されずに単語が追加されるだけです。言葉を付け加えたいのではなく、置き換えたいのです。アクション リスナーでリスト モデルをクリアしましたが、何らかの理由で機能しません。サブクラスから 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();
    }
}

}

4

1 に答える 1