Java 如何计算JList元素的总和?
我正在创建一个购物车模拟,其中一个产品列表作为我的库存,另一个列表用作用户可以扫描项目的购物车。理论上,这是将总成本作为项目显示在列表下方的JTextField中,因为这些项目正在添加到篮子中 要扫描项目,我有以下方法: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
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);