私はコンボボックスを使用して、さまざまな種類の食品に異なるカテゴリオプションを表示しようとしています。野菜、果物、乳製品などの各タイプの食品には独自の配列リストがあります。ユーザーが食品カテゴリを選択すると、そのカテゴリのすべての食品がテキスト領域に表示されます。ただし、別のカテゴリが選択されると、リストは余分な時間を繰り返しています。最初のクリックはうまくいき、一度だけ食べ物リストが表示されます。それ以降に別のカテゴリを選択すると、リストは繰り返し表示されます。ここで私が今使っているコードです:これでそうArrayListの出力自体が繰り返されますか?
public class foodTypesJFrame extends javax.swing.JFrame {
// Food category arraylists
ArrayList <String> fruitsList = new ArrayList();
ArrayList <String> veggiesList = new ArrayList();
ArrayList <String> dairyList = new ArrayList();
public void foodCategory(String box, String category, ArrayList list)
{
box = foodCategoryBox.getSelectedItem() + "";
if (box.equals(category))
{
foodOutput.setText("");
int indexNumber = 0;
// Display the different foods
for (int index = 0; index < list.size(); index++)
{
indexNumber = index + 1;
foodOutput.append(indexNumber + ". " + list.get(index) + "\n");
}
}
}
private void categoryBoxActionPerformed(java.awt.event.ActionEvent evt) {
String foodType = foodCategoryBox.getSelectedItem() + "";
String fruits = "Fruits";
String veggies = "Vegetables";
String dairy = "Dairy";
Collections.addAll(fruitsList, "Apple", "Orange", "Strawberry");
Collections.addAll(veggiesList, "Lettuce", "Carrot", "Broccoli");
Collections.addAll(dairyList, "Milk", "Cream", "Cheese");
foodCategory(foodType, fruits, fruitsList);
foodCategory(foodType, veggies, vegetableList);
foodCategory(foodType, dairy, dairyList);
は、私は最初の果物のカテゴリを選択した場合、それが出力されます 「1.アップル 2.オレンジ 3.ストロベリー」 しかし、私の場合その後野菜のカテゴリを選択し、それが出力 「1.レタス 2.ニンジン 3.ブロッコリー 4.レタス 5.ニンジン 6ブロッコリー」
、誰もがそれを行う方法上の任意の提案を持っていますリストは一度表示する?
たびに 'もう一度リストに項目を追加categoryBoxActionPerformed'、あなたは' categoryBoxActionPerformed'を呼び出す回以上ので、より多くの回数のリストが – MadProgrammer
にあなたが必要とするすべてを繰り返します'categoryBoxActionPerformed'を呼び出すたびに' ArrayList'を再初期化することです – Yahya