Java 如何计算JList元素的总和?

Java 如何计算JList元素的总和?,java,swing,sum,Java,Swing,Sum,我正在创建一个购物车模拟,其中一个产品列表作为我的库存,另一个列表用作用户可以扫描项目的购物车。理论上,这是将总成本作为项目显示在列表下方的JTextField中,因为这些项目正在添加到篮子中 要扫描项目,我有以下方法: public void actionPerformed(ActionEvent evt) { //Get the newly added list values. JList list = productList.getSelectedValuesList(); d

我正在创建一个购物车模拟,其中一个产品列表作为我的库存,另一个列表用作用户可以扫描项目的购物车。理论上,这是将总成本作为项目显示在列表下方的JTextField中,因为这些项目正在添加到篮子中

要扫描项目,我有以下方法:

public void actionPerformed(ActionEvent evt) {
  //Get the newly added list values.
  JList list = productList.getSelectedValuesList();
  double totalAddedValue = 0.0;
  double oldCartValue    = 0.0;

  //Iterate to get the price of the new items.
  for (int i = 0; i < list.getModel().getSize(); i++) {
    CartItem item = (CartItem) list.getModel().getElementAt(i);
    totalAddedValue += Double.ParseDouble(item.getPrice());
  }

  //Set total price value as an addition to cart total field.

  //cartTotalField must be accessible here.
  string cartFieldText = cartTotalField.getText();

  //Check that cartTextField already contains a value.
  if(cartTextField != null && !cartTextField.isEmpty())
  {
    oldCartValue = Double.parseDouble(cartFieldText);
  }

  cartTotalField.setText(String.valueOf(oldCartValue  + totalAddedValue));
  checkoutBasket.addElement(list);
}
public void actionPerformed(ActionEvent evt){
//获取新添加的列表值。
JList list=productList.getSelectedValuesList();
双总加法值=0.0;
双oldCartValue=0.0;
//迭代以获取新项目的价格。
对于(int i=0;i
目前我的主要问题是,将一个项目扫描到购物车将显示库存列表中所有项目的总和,而不仅仅是我试图扫描的一个项目。它还将在项目名称下打印一行,如javax.swing.JList[,0,0344x326,layout=java.awt.BorderLa….我该如何解决这个问题

项目列表类

public class StockList extends DefaultListModel {
    public StockList(){
        super();
}

public void addItem(String barcodeNo, String itemName, String price){
    super.addElement(new Item(barcodeNo, itemName, price));
}

public Item findItemByName(String name){
    Item temp;
    int indexLocation = -1;
    for (int i = 0; i < super.size(); i++) {
        temp = (Item)super.elementAt(i);
        if (temp.getItemName().equals(name)){
            indexLocation = i;
            break;
        }
    }

    if (indexLocation == -1) {
        return null;
    } else {
        return (Item)super.elementAt(indexLocation);
    }
}

public Item findItemByBarcode(String id){
    Item temp;
    int indexLocation = -1;
    for (int i = 0; i < super.size(); i++) {
        temp = (CheckoutItem)super.elementAt(i);
        if (temp.getBarcodeNo().equals(id)){
            indexLocation = i;
            break;
        }
    }

    if (indexLocation == -1) {
        return null;
    } else {
        return (Item)super.elementAt(indexLocation);
    }        
}

public void Item(String id){
    Item empToGo = this.findItemByBarcode(id);
    super.removeElement(empToGo);
}
public类StockList扩展了DefaultListModel{
上市公司名单(){
超级();
}
public void addItem(字符串条形码编号、字符串项目名称、字符串价格){
super.addElement(新项目(条形码号、项目名称、价格));
}
公共项findItemByName(字符串名称){
项目温度;
int indexLocation=-1;
对于(int i=0;i
}

这是JList的toString()表示形式。JList默认呈现程序只调用添加到ListModel的任何对象的toString()方法

checkoutBasket.addElement(list);
不要将JList添加到结帐篮中。必须将列表中的每个项目分别添加到结帐篮中

checkoutBasket.addElement(list);