Untitled
unknown
plain_text
2 years ago
4.4 kB
16
Indexable
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Elewsmart extends JFrame {
protected JButton addButton, remButton, clearButton, payButton;
protected DefaultListModel<String> item;
protected JList<String> itemList;
protected DefaultListModel<String> cartItem;
protected JList<String> cartList;
public Elewsmart() {
super("Elewsmart App");
// buttons
addButton = new JButton("Add to Cart");
remButton = new JButton("Remove");
clearButton = new JButton("Clear");
payButton = new JButton("Pay");
// main
JPanel jp = new JPanel(new BorderLayout());
add(jp);
// itemList
item = new DefaultListModel<>();
item.addElement("Item 1 (RM5.00)");
item.addElement("Item 2 (RM10.00)");
item.addElement("Item 3 (RM7.50)");
item.addElement("Item 4 (RM3.25)");
itemList = new JList<>(item);
itemList.setBorder(BorderFactory.createLineBorder(Color.black));
// cartLabel
JLabel cartLabel = new JLabel("Shopping Cart");
// cartList
cartItem = new DefaultListModel<>();
cartList = new JList<>(cartItem);
cartList.setBorder(BorderFactory.createLineBorder(Color.black));
// totalLabel
JLabel totalLabel = new JLabel("Total: RM0.00");
// centerPanel
JPanel centerPanel = new JPanel(new BorderLayout());
centerPanel.add(cartLabel, BorderLayout.NORTH);
centerPanel.add(totalLabel, BorderLayout.SOUTH);
centerPanel.add(cartList, BorderLayout.CENTER);
// buttonPanel
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(0,1));
buttonPanel.add(addButton);
buttonPanel.add(remButton);
buttonPanel.add(clearButton);
buttonPanel.add(payButton);
jp.add(buttonPanel, BorderLayout.EAST);
jp.add(itemList, BorderLayout.WEST);
jp.add(centerPanel, BorderLayout.CENTER);
setSize(400,300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
//button
addButton.addActionListener(new AddButtonListener());
remButton.addActionListener(new RemoveButtonListener());
clearButton.addActionListener(new ClearButtonListener());
payButton.addActionListener(new PayButtonListener());
}
//function
private class AddButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
int selectedIndex = itemList.getSelectedIndex();
if (selectedIndex != -1) {
String selectedItem = item.getElementAt(selectedIndex);
cartItem.addElement(selectedItem);
}
}
}
private class RemoveButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
int selectedIndex = cartList.getSelectedIndex();
if (selectedIndex != -1) {
cartItem.remove(selectedIndex);
}
}
}
private class ClearButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
cartItem.clear();
}
}
private class PayButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
double totalAmount = calculateTotal(); // Calculate total amount
String paymentMessage = String.format("Payment processed successfully! \n Total Amount: RM%.2f", totalAmount);
JOptionPane.showMessageDialog(Elewsmart.this, paymentMessage, "Payment Confirmation", JOptionPane.INFORMATION_MESSAGE);
clearCart(); // Clear cart after successful payment
}
private double calculateTotal() {
double total = 0.0;
for (int i = 0; i < cartItem.size(); i++) {
String item = cartItem.getElementAt(i);
double price = Double.parseDouble(item.substring(item.lastIndexOf("RM") + 2, item.length() - 1));
//extracts substring from item(start= RM, end = last char) -> convert to double(price)
total += price;
}
return total;
}
//clr
private void clearCart() {
cartItem.clear();
}
}
public static void main(String a[]) {
new Elewsmart();
}
}
Editor is loading...
Leave a Comment