使用GUI编程实现购买商品,练习增删改查。


 

//GUI页面

package page;

import java.awt.EventQueue;
public class Page2 extends JFrame {
    private JPanel contentPane;

    Image img1 = page.Util.getImage("img/1.jpg");
    Image img2 = page.Util.getImage("img/2.jpg");
    Image img3 = page.Util.getImage("img/3.jpg");
    Image img4 = page.Util.getImage("img/4.jpg");
    Image img5 = page.Util.getImage("img/5.jpg");
    Image img6 = page.Util.getImage("img/6.jpg");
    Image img7 = page.Util.getImage("img/7.jpg");
    Image img8 = page.Util.getImage("img/8.jpg");
    private JTextField bianhao;
    private JTextField shuliang;
    TestClothes tc = new TestClothes();
    public static int w;
    // 設置文本域的名字ta
    final JTextArea ta = new JTextArea();
    private JTextField ta1;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Page2 frame = new Page2();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    @Override
    public void paint(Graphics g) {
        super.paint(g);
        g.drawImage(img1, 20, 60, 100, 100, null, null);
        g.drawImage(img2, 180, 60, 100, 100, null, null);
        g.drawImage(img3, 340, 60, 100, 100, null, null);
        g.drawImage(img4, 480, 60, 100, 100, null, null);
        g.drawImage(img5, 20, 250, 100, 100, null, null);
        g.drawImage(img6, 180, 250, 100, 100, null, null);
        g.drawImage(img7, 340, 250, 100, 100, null, null);
        g.drawImage(img8, 480, 250, 100, 100, null, null);

    }

    /**
     * Create the frame.
     */
    public Page2() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(400, 30, 600, 600);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);
        setTitle("第二组supermarket");
        JPanel panel = new JPanel();
        panel.setBounds(10, 10, 564, 368);
        contentPane.add(panel);
        panel.setLayout(null);
        // panel.removeAll();

        JLabel a5 = new JLabel("005 \uFFE5598");
        a5.setBounds(31, 317, 82, 15);
        panel.add(a5);

        JLabel a6 = new JLabel("006 \uFFE5698");
        a6.setBounds(172, 317, 92, 15);
        panel.add(a6);

        JLabel a7 = new JLabel("007 \uFFE5798");
        a7.setBounds(325, 317, 82, 15);
        panel.add(a7);

        JLabel a8 = new JLabel("010 \uFFE5898");
        a8.setBounds(467, 317, 87, 15);
        panel.add(a8);

        JLabel a3 = new JLabel("003 \uFFE5398");
        a3.setBounds(325, 144, 82, 15);
        panel.add(a3);

        JLabel a2 = new JLabel("002 \uFFE5298");
        a2.setBounds(172, 144, 75, 15);
        panel.add(a2);

        JLabel a1 = new JLabel("001 \uFFE5198");
        // final TestClothes tc=new TestClothes();

        a1.setBounds(31, 144, 92, 15);
        panel.add(a1);

        JLabel a4 = new JLabel("004 \uFFE5498");
        a4.setBounds(467, 144, 87, 15);
        panel.add(a4);

        final JButton btnNewButton_1 = new JButton("\u98DF\u54C1\u7C7B");
        btnNewButton_1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                JOptionPane.showMessageDialog(btnNewButton_1, "此类商品还未上架!");
            }
        });
        btnNewButton_1.setBounds(162, 388, 93, 23);
        contentPane.add(btnNewButton_1);

        final JButton btnNewButton_2 = new JButton("\u6587\u5177\u7C7B");
        btnNewButton_2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                JOptionPane.showMessageDialog(btnNewButton_2, "此类商品还未上架!");
            }
        });
        btnNewButton_2.setBounds(303, 388, 93, 23);
        contentPane.add(btnNewButton_2);

        final JButton btnNewButton_3 = new JButton("\u7535\u5B50\u7C7B");
        btnNewButton_3.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                JOptionPane.showMessageDialog(btnNewButton_3, "此类商品还未上架!");
            }
        });
        btnNewButton_3.setBounds(461, 388, 93, 23);
        contentPane.add(btnNewButton_3);

        JButton btnNewButton_4 = new JButton("\u52A0\u5165\u8D2D\u7269\u8F66");
        btnNewButton_4.addActionListener(new ActionListener() {
            // 添加的方法
            public void actionPerformed(ActionEvent e) {
                double d = 0;
                if (bianhao.getText().equals("001")) {
                    d = 198;
                } else if (bianhao.getText().equals("002")) {
                    d = 298;
                } else if (bianhao.getText().equals("003")) {
                    d = 398;
                } else if (bianhao.getText().equals("004")) {
                    d = 498;
                } else if (bianhao.getText().equals("005")) {
                    d = 598;
                } else if (bianhao.getText().equals("006")) {
                    d = 698;
                } else if (bianhao.getText().equals("007")) {
                    d = 798;
                } else if (bianhao.getText().equals("010")) {
                    d = 898;
                } else {
                    JOptionPane.showMessageDialog(bianhao, "输入有误");
                }
                Integer s = Integer.parseInt(bianhao.getText());
                Integer s1 = Integer.parseInt(shuliang.getText());
                tc.add(s, d, s1);
                // 每次添加之后就把购物车的内容清空一次,表示刷新。
                ta.setText(null);
            }
        });
        btnNewButton_4.setBounds(169, 445, 108, 23);
        contentPane.add(btnNewButton_4);

        JButton btnNewButton = new JButton("\u670D\u88C5\u7C7B");
        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

            }
        });
        btnNewButton.setBounds(20, 388, 93, 23);
        contentPane.add(btnNewButton);

        bianhao = new JTextField();
        bianhao.setBounds(86, 461, 66, 21);
        contentPane.add(bianhao);
        bianhao.setColumns(10);

        shuliang = new JTextField();
        shuliang.setBounds(86, 505, 66, 21);
        contentPane.add(shuliang);
        shuliang.setColumns(10);

        JLabel lblNewLabel = new JLabel("\u7F16\u53F7");
        lblNewLabel.setBounds(40, 464, 54, 15);
        contentPane.add(lblNewLabel);

        JLabel lblNewLabel_1 = new JLabel("\u6570\u91CF");
        lblNewLabel_1.setHorizontalAlignment(SwingConstants.RIGHT);
        lblNewLabel_1.setBounds(10, 508, 54, 15);
        contentPane.add(lblNewLabel_1);

        JButton button = new JButton("\u67E5\u770B\u8D2D\u7269\u8F66");
        button.setBounds(169, 482, 108, 23);
        contentPane.add(button);

        JButton button_1 = new JButton("\u5220\u9664\u5546\u54C1");
        button_1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                double d = 0;
                if (bianhao.getText().equals("001")) {
                    d = 198;
                } else if (bianhao.getText().equals("002")) {
                    d = 298;
                } else if (bianhao.getText().equals("003")) {
                    d = 398;
                } else if (bianhao.getText().equals("004")) {
                    d = 498;
                } else if (bianhao.getText().equals("005")) {
                    d = 598;
                } else if (bianhao.getText().equals("006")) {
                    d = 698;
                } else if (bianhao.getText().equals("007")) {
                    d = 798;
                } else if (bianhao.getText().equals("010")) {
                    d = 898;
                } else {
                    JOptionPane.showMessageDialog(bianhao, "输入有误");
                }
                Integer s = Integer.parseInt(bianhao.getText());
                Integer s1 = Integer.parseInt(shuliang.getText());
                tc.remove(s, s1);
                // 每次删除之后,就把购物车清空一次,表示刷新。
                ta.setText(null);
            }
        });
        button_1.setBounds(169, 514, 108, 23);
        contentPane.add(button_1);

        ta.setBounds(313, 422, 261, 104);
        contentPane.add(ta);

        JButton button_2 = new JButton("\u5F00\uFF01");
        button_2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                // 计算总额
                List<Clothes> list = tc.look();
                int sum = 0;
                for (Clothes clothes : list) {
                    sum = sum + (int) (clothes.getNumber() * clothes.getPrice());
                }
                ta1.setText("共需支付:" + sum + "元");
            }
        });
        button_2.setBounds(481, 529, 93, 23);
        contentPane.add(button_2);

        ta1 = new JTextField();
        ta1.setBounds(344, 530, 127, 22);
        contentPane.add(ta1);
        ta1.setColumns(10);
        // 查看的方法
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                ta.setText(null);
                // 遍历集合
                List<Clothes> list = tc.look();
                for (Clothes clothes : list) {
                    ta.append(clothes.toString() + "\n");
                }
            }
        });
    }
}


 

/*
 * 画图工具类
 *
 * */
package page;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;

import javax.imageio.ImageIO;

public class Util {

    public static Image getImage(String path) {
        URL u = Util.class.getClassLoader().getResource(path);
        BufferedImage img = null;
        try {
            img = ImageIO.read(u);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return img;
    }
}



//增删改查后台代码

package store;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class TestClothes {
    List<Clothes> list = new LinkedList<Clothes>();

    // 添加购物车的方法
    public void add(int id, double price, int number) {
        Clothes c = new Clothes(id, price, number);
        boolean falg = true;
        // 判断如果id相等,就改变数量,再写入文件
        for (Clothes clothes : list) {
            if (clothes.getId() == id) {
                clothes.setNumber(clothes.getNumber() + number);
                falg = false;
                break;
            }
        }
        // 如果id不相等,就加一条进去
        if (falg)
            list.add(c);
        ObjectOutputStream oos = null;
        try {
            oos = new ObjectOutputStream(new FileOutputStream(new File("cart")));
            oos.writeObject(list);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (oos != null) {
                    oos.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    // 查看购物车的方法 返回一个集合 给page2的查看购物车点击事件
    public List look() {
        ObjectInputStream ois = null;
        List list1 = null;
        try {
            FileInputStream fis = new FileInputStream(new File("cart"));
            if (fis.available() > 0) {
                ois = new ObjectInputStream(fis);
                list1 = (List) ois.readObject();
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } finally {
            if (ois != null) {
                try {
                    ois.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return list1;
    }

    // 删除购物车的方法
    public void remove(int id, int number) {
        boolean falg = true;
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).getId() == id) {
                if (list.get(i).getNumber() >= number) {
                    list.get(i).setNumber(list.get(i).getNumber() - number);
                    if (list.get(i).getNumber() <= 0) {
                        list.remove(i);
                    }
                    falg = false;
                    break;
                }
                if (falg)
                    list.remove(i);
            }
        }
        FileOutputStream fis = null;
        ObjectOutputStream ois = null;
        try {
            fis = new FileOutputStream(new File("cart"));
            ois = new ObjectOutputStream(fis);
            ois.writeObject(list);

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (list != null) {
                try {
                    ois.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}


//封装对象

package store;

import java.io.Serializable;

public class Clothes implements Serializable {

    private int id;
    private double price;
    private int number;

    public Clothes(int id) {
        super();
        this.id = id;
    }

    public Clothes() {
        super();
    }

    public Clothes(int id, double price, int number) {
        super();
        this.id = id;
        this.price = price;
        this.number = number;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public int getNumber() {
        return number;
    }

    public void setNumber(int number) {
        this.number = number;
    }

    @Override
    public String toString() {
        return "Clothes [id=" + id + ", price=" + price + ", number=" + number + "]";
    }
}



 

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值