メニューから表示された食品アイテムからなる食品注文を作成するプログラムを作成しようとしています。各項目は選択され、特定の量が与えられます。私が選択した項目をJTextFieldに表示したいが、正しく動作していない。私はに走っていると把握することができないよう、いくつかの問題がありますJOptionPaneはArrayListからすべての項目を表示していません
、
JOptionPaneのは、私はデリのArrayListに追加された項目のすべてを表示することになっているが、それだけで表示されます最初はナチョスです。
私のgetTotalPriceメソッドがコストを適切に計算していないため、なぜその理由が完全にわかりません。
アイテムがArraylistに既に存在しているかどうかを判断し、それがあれば数量に追加し、そうでなければarraylistに新しいエントリを追加します。ただし、すでに存在するかどうかにかかわらず常に新しい項目が追加されます。
以下は私のすべてのクラスファイルです。
import java.util.ArrayList;
public class Menu {
private final ArrayList<Item> menu;
public Menu() {
menu = new ArrayList<>();
}
public void addItem(Item item) {
menu.add(item);
}
public Item getItem(int itemNo) {
if (menu.size() > itemNo) {
return menu.get(itemNo);
}
return null;
}
@Override
public String toString() {
for (int i = 0; i < menu.size(); i++) {
return String.format("%s: %s \n",i+1, menu.get(i));
}
return null;
}
}
public class Item {
private final String name;
private final double price;
public Item(String name, double price) {
this.name = name;
this.price = price;
}
public double getPrice() {
return price;
}
@Override
public String toString() {
return String.format("Name %s @ Price $%s", name, price);
}
public boolean equals(Item item) {
return item.name.equals(item.name);
}
}
public class ItemQty {
private final Item item;
private final int quantity;
public ItemQty(Item item, int quantity) {
this.item = item;
this.quantity = quantity;
}
public Item getItem() {
return item;
}
public int getQuantity() {
return quantity;
}
@Override
public String toString() {
return String.format("%s - %s\n", quantity, item);
}
public boolean equals(ItemQty itemQty) {
return itemQty.getItem().equals(itemQty.getItem());
}
}
import java.util.ArrayList;
public class Order {
private final ArrayList<ItemQty> order;
public Order() {
order = new ArrayList<>();
}
public void addToOrder(ItemQty itemQty) {
if (order.contains(itemQty)) {
int amount = itemQty.getQuantity();
amount += 1;
}
else
order.add(itemQty);
}
public double getTotalPrice() {
for (int index = 0; index < order.size(); index++) {
double price = order.get(index).getItem().getPrice();
int quantity = order.get(index).getQuantity();
double sum = price * quantity;
return sum;
}
return 0;
}
@Override
public String toString() {
String str = "";
for (int index = 0; index < order.size(); index++) {
str += order.get(index).toString() + "\n\n";
}
return str;
}
}
すべてのヘルプや批判は、私のgetTotalPrice方法が適切にコストを計算していないと私は、なぜ完全にわからない