我目前正在創建一個購物車模擬程序。主GUI包含兩個列表,一個是產品列表或清單。 (存儲在一個.dat文件中的產品,在啓動時自動加載)另一個是空白的,用於模擬我的購物籃。這個想法是能夠從我的庫存中掃描物品到結帳籃。在發生這種情況時,我想創建一個文本字段,以動態更新購物籃中所有商品的成本。這種方法有什麼問題 - (在Jlist中添加元素)?
下面是我的掃描按鈕,這是爲了進行上述活動的方法:
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);
}
但是目前掃描物品將其添加到列表中,但打印的總奇怪的結果。 (每個項目增加5.5,無論其實際值**)。它還將在項目名稱下打印一行,如javax.swing.JList[,0,0,344x326,layout=java.awt.BorderLa... .
以下是我的CartItem和ItemList的類(如果它們可能有所幫助)。謝謝。
-Cart項目
-ItemList
import javax.swing.DefaultListModel;
public class ItemList extends DefaultListModel {
public ItemList(){
super();
}
public void addCartItem(String barcodeNo, String itemName, String price){
super.addElement(new CartItem(barcodeNo, itemName, price));
}
public CartItem findItemByName(String name){
CartItem temp;
int indexLocation = -1;
for (int i = 0; i < super.size(); i++) {
temp = (CartItem)super.elementAt(i);
if (temp.getItemName().equals(name)){
indexLocation = i;
break;
}
}
if (indexLocation == -1) {
return null;
} else {
return (CartItem)super.elementAt(indexLocation);
}
}
public CartItem findItemByBarcode(String id){
CartItem temp;
int indexLocation = -1;
for (int i = 0; i < super.size(); i++) {
temp = (CartItem)super.elementAt(i);
if (temp.getBarcodeNo().equals(id)){
indexLocation = i;
break;
}
}
if (indexLocation == -1) {
return null;
} else {
return (CartItem)super.elementAt(indexLocation);
}
}
public void removeItem(String id){
CartItem empToGo = this.findItemByBarcode(id);
super.removeElement(empToGo);
}
}
退出詢問和刪除問題:當您在3小時前詢問完全相同的問題時,我給了您相同的答案:http://stackoverflow.com/questions/29242444/how-to-calculate-total-sum-的-JList的元素/ 29242705#29242705。這不是您第一次詢問和刪除問題。花時間幫助並給你答案是非常令人沮喪的。我不僅浪費了時間,而且浪費了讀過這個問題的其他人的時間。 – camickr 2015-03-25 00:13:59
@camickr:我們在這個網站上不需要這種行爲,因爲對那些試圖幫助的志願者來說是不公平的。謝謝你的提醒。 – 2015-03-25 00:26:01
@camickr - 我誠摯向您道歉,氣墊船充滿了鰻魚。我的意圖是永遠不會浪費你的時間,我只是在尋找一個更詳細的答案,因爲我是初學者,並且仍然難以解決如何解決問題。我恢復了之前刪除的問題。 – user4702874 2015-03-25 13:36:26