模拟购物车 java程序

package pra;

import java.awt.Choice;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.ImageObserver;
import java.awt.image.ImageProducer;
import java.util.Vector;

import javax.swing.BorderFactory;
import javax.swing.DefaultListModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.border.Border;

public class Homework {
	public static void main(String[] args) {
		new MyFrame("周大哥的购物车").load();

	}
}

class MyFrame extends JFrame {
	JButton b1;
	JButton b2;
	JButton b3;
	JButton b4;
	JPanel p1;
	JPanel p2;
	JPanel p3;
	Vector<String> vLeft;
	Vector<String> vRight;
	JList j2;
	JList j1;

	MyFrame(String name) {
		// this.setBackground(Color.BLUE);
		this.setTitle(name);
		// this.setIconImage(new );
		b1 = new JButton(">>");
		// b1.setContentAreaFilled(false);
		b1.setBorder(BorderFactory.createRaisedBevelBorder());

		b2 = new JButton(">");
		b2.setBorder(BorderFactory.createRaisedBevelBorder());
		b3 = new JButton("<<");
		b3.setBorder(BorderFactory.createRaisedBevelBorder());
		b4 = new JButton("<");
		b4.setBorder(BorderFactory.createRaisedBevelBorder());
		p1 = new JPanel();
		p1.setBackground(Color.PINK);
	 //p1.setPreferredSize(new Dimension(300, 800));
		b2.addMouseListener(new Mon1());
		b4.addMouseListener(new Mon1());
		b1.addMouseListener(new Mon2());
		b3.addMouseListener(new Mon2());
		// 中间的面板设置4行1列
		p2 = new JPanel(new GridLayout(4, 1, 0, 20));
		
		p2.setBackground(Color.red);
		p3 = new JPanel();
		p3.setBackground(Color.PINK);
		p3.setBounds(100, 100, 400, 500);
		vRight = new Vector<String>();
		vRight.add("书");
		vRight.add("笔");
		vRight.add("橡皮");
		vRight.add("眼镜");
		vRight.add("手机");
		vLeft = new Vector<String>();
		vLeft.add("羽绒服");
		vLeft.add("裤子");
		vLeft.add("衬衣");
		vLeft.add("运动鞋");
		vLeft.add("背包");
		vLeft.add("球拍");
		j1 = new JList(vLeft);
		//j1.setPreferredSize(new Dimension(80,10 ));
		j1.setFont(new Font("宋体", Font.BOLD + Font.ITALIC, 30));

		j1.setSelectionBackground(Color.yellow);
		j2 = new JList(vRight);
		j2.setFont(new Font("宋体", Font.BOLD + Font.ITALIC, 30));
		j2.setSelectionBackground(Color.yellow);
		//j2.setPreferredSize(new Dimension(100, 8));
	}

	void load() {
		this.setLayout(new FlowLayout(FlowLayout.CENTER, 50, 50));

		j1.add(b1);
		j1.setVisibleRowCount(10);

		p1.add(new JScrollPane(j1));
		add(p1);
		// 在面板內添加按鈕

		p2.add(b1);

		p2.add(b2);
		p2.add(b3);
		p2.add(b4);
		add(p2);
		// p3.add(t2);

		j2.setVisibleRowCount(10);

		p3.add(new JScrollPane(j2));
		add(p3);
		pack();

		this.setVisible(true);
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		this.setLocationRelativeTo(null);

	}

	class Mon2 implements MouseListener {

		@Override
		public void mouseClicked(MouseEvent e) {
			// TODO Auto-generated method stub
			JButton button = (JButton) e.getSource();
			if (button.getText().equals(">>")) {
				vRight.addAll(vLeft);
				vLeft.clear();
				// System.out.println("我执行了");
			} else {
				vLeft.addAll(vRight);
				vRight.clear();
			}
			j1.updateUI();
			j2.updateUI();
		}

		@Override
		public void mouseEntered(MouseEvent e) {
			// TODO Auto-generated method stub

		}

		@Override
		public void mouseExited(MouseEvent e) {
			// TODO Auto-generated method stub

		}

		@Override
		public void mousePressed(MouseEvent e) {
			// TODO Auto-generated method stub

		}

		@Override
		public void mouseReleased(MouseEvent e) {
			// TODO Auto-generated method stub

		}

	}

	class Mon1 implements MouseListener {

		@Override
		public void mouseClicked(MouseEvent e) {
			// TODO Auto-generated method stub
			// TODO Auto-generated method stub
			JButton t = (JButton) e.getSource();
			// 向右移动

			if (t.getText().equals(">")) {

				int num[] = j1.getSelectedIndices();
				if (num.length == 0 || vLeft.size() == 0) {
					JOptionPane.showMessageDialog(null, "亲,请选择选项后移动");
				} else if (num.length >= 1) {
					Vector<String> temp = new Vector<String>();
					for (int i : num) {
						// if((vLeft.get(i))!=null)
						temp.add(vLeft.get(i));

					}
					for (String i : temp) {
						vLeft.remove(i);
						vRight.add(i);
					}
				}

			} // 向左移动
			else if (t.getText().equals("<")) {
				int num[] = j2.getSelectedIndices();
				Vector<String> temp = new Vector<String>();
				if (num.length == 0 || vRight.size() == 0) {
					JOptionPane.showMessageDialog(null, "亲,请选择好后移动");
				} else {

					for (int i : num) {
						// if((vRight.get(i))!=null)
						temp.add(vRight.get(i));

					}
					for (String aa : temp) {
						vRight.remove(aa);
						vLeft.add(aa);
					}
				}

			}
			j2.updateUI();
			j1.updateUI();
			j1.setSelectedIndex(0);
			j2.setSelectedIndex(0);
		}

		@Override
		public void mouseEntered(MouseEvent e) {
			// TODO Auto-generated method stub

		}

		@Override
		public void mouseExited(MouseEvent e) {
			// TODO Auto-generated method stub

		}

		@Override
		public void mousePressed(MouseEvent e) {
			// TODO Auto-generated method stub

		}

		@Override
		public void mouseReleased(MouseEvent e) {
			// TODO Auto-generated method stub

		}

	}
}

import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Set; /** * 购物车类 */ public class Cart { //创建一个map对象,用来保存商品,key为商品,value为商品的数量 private Map<Goods, Integer> map = new HashMap<Goods, Integer>(); /** * 添加商品到购物车方法 * @param id 商品编号 * @param quantity 商品数量 */ public void addGoods(int id, int quantity){ Goods goods = GoodsDB.goodsMap.get(id); if(goods!=null){ Integer oQuantity = map.get(goods);//获取商品在购物车中原本的数量 if(oQuantity!=null){ oQuantity += quantity; }else{ oQuantity = quantity; } map.put(goods, oQuantity);//添加商品到map中 System.out.println("添加商品"+goods.getName()+"成功!"); }else{ System.out.println("添加失败!商品编号不存在!"); } } /** * 按指定的编号删除商品 * @param id 商品编号 */ public void delGoods(int id){ Goods goods = GoodsDB.goodsMap.get(id); if(goods!=null){ map.remove(goods);//从map删除商品 System.out.println("删除商品"+goods.getName()+"成功!"); }else{ System.out.println("删除失败!商品编号不存在!"); } } /** * 修改商品数量方法 * @param id 商品编号 * @param quantity 要修改的商品数量 */ public void updateGoods(int id, int quantity){ Goods goods = GoodsDB.goodsMap.get(id); if(goods!=null){ map.put(goods, quantity);//从map删除商品 }else{ System.out.println("修改失败!商品编号不存在!"); } } /** * 打印购物车商品列表 */ public void show(){ Set<Entry<Goods, Integer>> entrySet = map.entrySet(); System.out.println("编号\t单价\t数量\t名称\t总价"); for(Entry<Goods, Integer> entry:entrySet){ Goods goods = entry.getKey(); Integer quantity = entry.getValue(); System.out.println(goods.getId()+"\t"+goods.getPrice()+"\t"+quantity+"\t"+goods.getName()+"\t"+goods.getPrice()*quantity); } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值