0
我想更新我的totalOrderedLabel,以便當我從orderList中刪除一個項目時,totalOrderedLabel中的totalPrice將被更新。試圖更新總訂單清單
刪除按鈕
JButton removeButton = new JButton("remove");
removeButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int selectionNumber = orderList.getSelectedIndex();
if (selectionNumber == -1) {
JOptionPane.showMessageDialog(MenuPage.this, "Remove Item");
} else {
listOrder.removeElementAt(selectionNumber);
double totalPrice = 0.0;
for(Food food : OrderedFoodList) {
totalPrice = totalPrice + food.getPrice();
}
totalOrderedLabel.setText("Total price: " + totalPrice);
OrderedFoodList.clear();
}
}
});
removeButton.setBounds(680, 189, 117, 29);
contentPane.add(removeButton);
orderList /法加起來的總價格。
menulist listOrder = new menulist();
orderList = new JList(listOrder);
JButton orderBtn = new JButton();
orderBtn.setText("Place Order");
orderBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int selectionNumber = mealList.getSelectedIndex();
if (selectionNumber == -1){
JOptionPane.showMessageDialog(MenuPage.this, "Please select a meal");
} else {
Food orderedMeal = (Food) mealList.getSelectedValue();
JOptionPane.showMessageDialog(MenuPage.this, "You have ordered " //clear the last order . find a code to do that
+ orderedMeal + "");
listOrder.addElement(orderedMeal);
double totalPrice = 0.0;
for(Food food : OrderedFoodList) {
totalPrice = totalPrice + food.getPrice();
}
totalOrderedLabel.setText("Total price: " + totalPrice);
}
}
});
orderBtn.setBounds(259, 189, 117, 29);
contentPane.add(orderBtn);
totalOrdered標籤
totalOrderedLabel = new JLabel("Total Price");
totalOrderedLabel.setBounds(697, 111, 142, 16);
contentPane.add(totalOrderedLabel);
totalCaloriesLabel = new JLabel("Total Calories");
totalCaloriesLabel.setBounds(388, 205, 253, 16);
contentPane.add(totalCaloriesLabel);
}
public void updateLabel(menulist model) {
int selectionNumber = mealList.getSelectedIndex();
if (selectionNumber == -1){
//JOptionPane.showMessageDialog(MenuPage.this, "Please select a meal");
} else {
Food menulist = (Food) mealList.getSelectedValue();
Food itemFood = (Food) ((menulist) model).getElementAt(selectionNumber);
//Add new food to current order
OrderedFoodList.add(itemFood);
做IMO最好的方法是製作OrderedFoodList'Observable',然後爲所有依賴它的圖形字段添加'Observer's。在更新時,請記住使用SwingUtilities.invokeLater(Runnable) – ControlAltDel
@LydiaRichardson,你有什麼確切的問題?你知道如何設置JLabel的文本嗎?你知道如何迭代JList並總計所有值嗎?您似乎在「下訂單」按鈕中執行所有這些邏輯。那麼「刪除」按鈕有什麼不同? – camickr
爲什麼你和你的兄弟不一起解決問題:http://stackoverflow.com/questions/36509153/trying-to-create-a-remove-button-which-removes-items-from-a-列表/ 36509400#36509400而當你在它提醒你的兄弟開始接受答案,當你獲得幫助。 – camickr