“Java任务:完成商品购买并显示购物车详细信息”的版本间的差异
来自CloudWiki
(创建页面,内容为“完成商品购买功能,效果如下图所示: 完成购物车信息查看功能,效果如下图所示: ==任务实现== 第一步:启动Eclipse,导…”) |
|||
第55行: | 第55行: | ||
} | } | ||
});</nowiki> | });</nowiki> | ||
+ | |||
+ | 返回 [[Java程序设计]] |
2018年5月26日 (六) 08:02的版本
完成商品购买功能,效果如下图所示:
完成购物车信息查看功能,效果如下图所示:
任务实现
第一步:启动Eclipse,导入Java Project,工程名为Project0901。
第二步:为按钮购买添加单击事件,业务逻辑如下:
- 获取用户在商品表格(JTable)中选取的商品(书籍)信息。
- 如果用户没有选取任何商品,则弹出提示框:请选择您需要购买的商品。
- 把用户选取的商品(书籍)添加入购物车。
- 如果购买数量大于库存数,则弹出提示框:书籍:《x》仅剩x本,无法满足您的购买需要。(该信息来自于购物车的购买异常CartyException)
- 购买成功后将商品加入购物车。
- 更新商品表格(JTable)中对应商品库存数。
- 在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程序设计