Ich versuche mein totalOrderedLabel zu aktualisieren, so dass, wenn ich ein Element aus der orderList entferne der Gesamtpreis innerhalb der totalOrderedLabel aktualisiert wird.Ich versuche, die gesamte Bestellliste zu aktualisieren
Schaltfläche Entfernen
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);
ORDER/Methode um den Gesamtpreis zu addieren.
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 Label-
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);
Der beste Weg, IMO zu machen, wäre, OrderedFoodList 'Observable' zu erstellen, dann' Observer' für alle grafischen Felder hinzuzufügen, die davon abhängen. Denken Sie bei der Aktualisierung daran, SwingUtilities.invokeLater (Runnable) zu verwenden. – ControlAltDel
@LydiaRichardson, Und was ist das genaue Problem, das Sie haben? Weißt du, wie man den Text eines JLabel setzt? Wissen Sie, wie Sie die JList durchlaufen und alle Werte zusammenfassen? Sie scheinen all diese Logik in Ihrem "Place Order" -Button zu machen. Was ist also anders an der Schaltfläche "Entfernen"? – camickr
Warum arbeiten Sie und Ihr Bruder nicht zusammen, um das Problem zu lösen: http://stackoverflow.com/questions/36509153/trying-to-create-a-remove-button-which-removes-items-from-a- Liste/36509400 # 36509400 Und während Sie daran erinnern Ihren Bruder zu beginnen, Antworten zu akzeptieren, wenn Sie Hilfe bekommen. – camickr