18
回答
关于JAVA 编写的购物车 GUI
华为云实践训练营,热门技术免费实践!>>>   

@DDT 你好,想跟你请教个问题:

你好 可以帮一个忙吗,我需要编写一个简单的GUI java 关于购物车, 包括登录界面 ,之后是列出所有商品 , 加商品到购物车,购物车里面可以移除商品和更换商品数量,最后就是结账,这个程序不需要数据库建立,,希望可以帮我一下, 非常感谢你

<无标签>
举报
break__wind
发帖于5年前 18回/811阅
共有18个答案 最后回答: 5年前

非常感谢你,但是老师要求界面设计要非常美观 而且要有登陆窗口,和结算窗口,所以这个不是很好,希望你能再次帮忙,非常感谢你!!



import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.text.*;
import java.util.*;
 
public class ShoppingFrame extends JFrame {
    private ShoppingCart items;
    private JTextField total;
    private JButton jbtshow= new JButton("My Cart ");




private JFrame ShoppingFrame= new JFrame();






 


 
    public ShoppingFrame(Catalog products)      {
     
       
   
        setTitle(products.getName());
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        items = new ShoppingCart();
 
        
       total = new JTextField("$0.00", 12);
        total.setEditable(false);
        total.setEnabled(false);
        total.setDisabledTextColor(Color.BLACK);
        JPanel p = new JPanel();
        p.setBackground(Color.PINK);
       JLabel l = new JLabel("order total");
        l.setForeground(Color.YELLOW);
        p.add(l);
        p.add(total);
        add(p, BorderLayout.SOUTH); 
       
 
        p = new JPanel(new GridLayout(products.size(), 1));
        for (int i = 0; i < products.size(); i++)
            addItem(products.get(i), p);
        add(p, BorderLayout.CENTER);
 
  
      
        add(jbtshow, BorderLayout.EAST);
        jbtshow.addActionListener(new ActionListener(){
         public void actionPerformed(ActionEvent e){
        ShoppingCart items = new ShoppingCart();
            get
        
         showcart f = new showcart(items);
        
        setVisible(false);
        f.setVisible(true);
        }
        });
 
       
        pack();
    }
 
   
    /*private JPanel makeCheckBoxPanel() {
        JPanel p = new JPanel();
        p.setBackground(Color.blue);
        final JCheckBox cb = new JCheckBox("");
        p.add(cb);
        cb.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                
                items.setDiscount(cb.isSelected());
                updateTotal();
            }
        });
        return p;
    }*/
 
    
    private void addItem(final Item product, JPanel p) {
        JPanel sub = new JPanel(new FlowLayout(FlowLayout.LEFT));
        sub.setBackground(new Color(0, 180, 0));
        final JTextField quantity = new JTextField(3);
        quantity.setHorizontalAlignment(SwingConstants.CENTER);
        quantity.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                updateItem(product, quantity);
                quantity.transferFocus();
            }
        });
        quantity.addFocusListener(new FocusAdapter() {
            public void focusLost(FocusEvent e) {
                updateItem(product, quantity);
            }
        });
        sub.add(quantity);
        JLabel l = new JLabel("" + product);
        l.setForeground(Color.white);
        sub.add(l);
        p.add(sub);
    }
 
    
    private void updateItem(Item product, JTextField quantity) {
        int number;
        String text = quantity.getText().trim();
        try {
            number = Integer.parseInt(text);
        } catch (NumberFormatException error) {
            number = 0;
        }
        if (number <= 0 && text.length() > 0) {
            Toolkit.getDefaultToolkit().beep();
            quantity.setText("");
            number = 0;
        }
        items.add(new ItemOrder(product, number));
        updateTotal();
    }
 
   
    private void updateTotal() {
        double amount = items.getTotal();
        total.setText(NumberFormat.getCurrencyInstance().format(amount));
    }
}
顶部