Java 添加到运行总变量?

Java 添加到运行总变量?,java,javafx,Java,Javafx,我想做一个餐馆菜单选择器 我有一个订单类和另一个连接到选择饮料菜单的类 我的订单类表有一个正在运行的total变量。 我试图把一个项目的价格加到总价格中,但是语法有问题 selectedItem.getPrice(); Table tbl = new Table(); tbl.setRunningTotal() + selectedItem.getPrice(); 我创建table类的“intance”,然后使用运行total“setter”的集合并将其添加到

我想做一个餐馆菜单选择器 我有一个订单类和另一个连接到选择饮料菜单的类

我的订单类表有一个正在运行的total变量。 我试图把一个项目的价格加到总价格中,但是语法有问题

selectedItem.getPrice();

        Table tbl = new Table();
        tbl.setRunningTotal() + selectedItem.getPrice();
我创建table类的“intance”,然后使用运行total“setter”的集合并将其添加到所选fooditems get price方法中,这样做正确吗

这是完整的“桌子”课程

package sample;

import java.util.ArrayList;

public class Table {
   private ArrayList<FoodDrinkController> customers;
   private String tablenumber;
   private ArrayList order;
   private double runningTotal;
   private double totalCalories;

   public Table(ArrayList<FoodDrinkController> customers, String tablenumber, ArrayList order, double runningTotal, double totalCalories) {
      this.customers = customers;
      this.tablenumber = tablenumber;
      this.order = order;
      this.runningTotal = runningTotal;
      this.totalCalories = totalCalories;
   }

   public Table() {

   }

   public ArrayList<FoodDrinkController> getCustomers() {
      return customers;
   }

   public void setCustomers(ArrayList<FoodDrinkController> customers) {
      this.customers = customers;
   }

   public String getTablenumber() {
      return tablenumber;
   }

   public void setTablenumber(String tablenumber) {
      this.tablenumber = tablenumber;
   }

   public ArrayList getOrder() {
      return order;
   }

   public void setOrder(ArrayList order) {
      this.order = order;
   }

   public double getRunningTotal() {
      return runningTotal;
   }

   public void setRunningTotal(double runningTotal) {
      this.runningTotal = runningTotal;
   }

   public double getTotalCalories() {
      return totalCalories;
   }

   public void setTotalCalories(double totalCalories) {
      this.totalCalories = totalCalories;
   }


}
任何帮助都将不胜感激 我所要做的就是在另一个类的running total属性中添加food price属性

****编辑****

这是SelectDrinkControllerGUI类

package sample;

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.ListView;
import javafx.stage.Stage;

import java.util.ArrayList;

public class SelectDrinkControllerGUI extends Application {




    public ListView<FoodDrink> lvDrinks;
    private FoodDrinkController fdc = new FoodDrinkController();
    private Table table;











    public SelectDrinkControllerGUI() {


    }

    @Override
    public void start(Stage stage) throws Exception {

    }


    // Filters the menu items so i just displays drinks in the listview
    @FXML
    public void initialize() {
        System.out.println("initialize");
        ObservableList<FoodDrink> items = fdc.filterByType(Global.itemtype.DRINK);
        ArrayList<FoodDrink> stringList = new ArrayList<>();
        //System.out.println(items);
        for (FoodDrink item : items) {
            stringList.add(item);


        }

        lvDrinks.setItems(FXCollections.observableList(stringList));

    }

    // Button that adds the selected item to the order array
    public void addEntry(ActionEvent actionEvent){
        FoodDrink selectedItem = lvDrinks.getSelectionModel().getSelectedItem();
        fdc.order.add(selectedItem);

        selectedItem.getPrice();

        Table tbl = new Table();
        tbl.setRunningTotal(tbl.getRunningTotal() + selectedItem.getPrice());

        System.out.println("" + tbl.getRunningTotal());

        System.out.println(fdc.order);



    }
}
这是FoodDrinkController类,它处理所有类型的食物

package sample;

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;

import java.util.ArrayList;

public class FoodDrinkController {
    private ArrayList<FoodDrink> fullList = new ArrayList<>();




    public ArrayList<FoodDrink> order = new ArrayList<FoodDrink>();








    //constructor with some stuff in it
    public FoodDrinkController(){

        FoodDrink cola = new FoodDrink("Coca Cola", 2.99, Global.itemtype.DRINK);
        FoodDrink pepsi = new FoodDrink("Pepsi", 2.99, Global.itemtype.DRINK);
        FoodDrink lemmonade = new FoodDrink("Lemmonade", 2.99, Global.itemtype.DRINK);
        FoodDrink garlicbread = new FoodDrink("Garlic Bread", 4.99, Global.itemtype.STARTER);

        FoodDrink burger = new FoodDrink("burger", 7.99, Global.itemtype.MAIN);

        fullList.add(cola);
        fullList.add(pepsi);
        fullList.add(lemmonade);
        fullList.add(burger);
        fullList.add(garlicbread);



    }


    public ObservableList<FoodDrink> filterByType(Global.itemtype itemtype){
        ArrayList<FoodDrink> subList = new ArrayList<>();
        for (FoodDrink listItem : fullList){
            if(listItem.getItemtype().equals(itemtype)){
                subList.add(listItem);
            }
        }
        return FXCollections.observableArrayList(subList);
    }



    //plain old main method
    public static void main(String[] args) {
        //SelectDrinkController fbtd = new SelectDrinkController();
        //System.out.println(fbtd.filterByType("DRINK"));

        FoodDrinkController fdc = new FoodDrinkController();
        //System.out.println(fdc.filterByType(Global.itemtype.DRINK));

    }
}

您的问题是,每次添加条目时,您都在创建另一个表实例

我猜一次,你想创建一个表。可能在SelectDrinkControllerGUI的构造函数中:

SelectDrinkControllerGUI中已经有一个实例变量表,因此只需将构造函数更改为:

public SelectDrinkControllerGUI() {
    this.table = new Table();
}
然后更新附录…:

此外,您不需要+来打印双打。只要做我上面所做的:

System.out.println(tbl.getRunningTotal());

如果您还有问题,请告诉我。

table.setRunningTotaltable.getRunningTotal+selectedItem.getPrice;不过,如果表中有addToRunningTotaldouble price方法会更好。@NomadMaker非常感谢您。为了测试的目的,现在我只是想把当前的值打印到控制台上,但它就是不打印。我试过System.out.printlntbl.getRunningTotal;但我只是得到了一个巨大的错误?事实上我已经修复了,但它似乎没有添加到实际的运行总数中。为了测试它,我打印了get running total方法,但即使添加了更多的项,它仍然保持不变。这看起来像是一个可疑的任务。如果你有关于语言的问题来帮助你做好作业,那么就直接问“搜索”他们可能已经回答了。但是Stackoverflow不是来帮你做家庭作业的。那很有效!!谢谢,没问题!如果你愿意,你也可以接受@NomadMaker的建议,创建一个addToRunningTotalDuble price,让它更干净。
System.out.println(tbl.getRunningTotal());