Java任务:完成商品购买并显示购物车详细信息

来自CloudWiki
Cloud17讨论 | 贡献2018年5月26日 (六) 08:02的版本
跳转至: 导航搜索

完成商品购买功能,效果如下图所示:

完成购物车信息查看功能,效果如下图所示:

任务实现

第一步:启动Eclipse,导入Java Project,工程名为Project0901。

第二步:为按钮购买添加单击事件,业务逻辑如下:

  1. 获取用户在商品表格(JTable)中选取的商品(书籍)信息。
  2. 如果用户没有选取任何商品,则弹出提示框:请选择您需要购买的商品。
  3. 把用户选取的商品(书籍)添加入购物车。
  4. 如果购买数量大于库存数,则弹出提示框:书籍:《x》仅剩x本,无法满足您的购买需要。(该信息来自于购物车的购买异常CartyException)
  5. 购买成功后将商品加入购物车。
  6. 更新商品表格(JTable)中对应商品库存数。
  7. 在BookListForm窗体中显示购物车中已购买的商品总数。

具体代码如下:

btnBuy.addActionListener(e->{
			//获取用户在商品表格中选择的行
			int selectRow=tblBook.getSelectedRow();
			//当用户没有选择商品时
			if(selectRow<0) {
				JOptionPane.showMessageDialog(frame, "请选择你所需要购买的商品","错误信息",JOptionPane.WARNING_MESSAGE);
				return;
			}
			//获取用户购买的商品
			Book book=null;
			String bid=tblBook.getModel().getValueAt(selectRow, 0).toString();
			book=bookDao.queryBook(bid);
			//询问顾客购买商品数量
			int quantity=Integer.parseInt(JOptionPane.showInputDialog("你需要购买"+book.getName()+" 数量是:"));
			try {
				user.getCart().buy(book, quantity);
			}catch(CartException e1) {
				JOptionPane.showInternalMessageDialog(frame, e1.getMessage(),"错误信息",JOptionPane.WARNING_MESSAGE);
			}
			//购买后获取购物车种商品数量
			int goodsQuantity=user.getCart().size();
			//显示购物车中的数据
			lblQuantity.setText(goodsQuantity+"件");
			//修改表格数据
			tblBook.getModel().setValueAt(book.getNumber(), selectRow, 3);
			
});

第三步:为“查看详情”添加事件,单击鼠标左键弹出购物车详细信息:

lblCartDetail.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				if(arg0.getButton()==MouseEvent.BUTTON1) {
					JOptionPane.showMessageDialog(frame, user.getCart().toString(),"购物车信息",JOptionPane.INFORMATION_MESSAGE);
				}
			}
	});

返回 Java程序设计