package bean;
成都創(chuàng)新互聯(lián)主營(yíng)當(dāng)涂網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,手機(jī)APP定制開發(fā),當(dāng)涂h5小程序設(shè)計(jì)搭建,當(dāng)涂網(wǎng)站營(yíng)銷推廣歡迎當(dāng)涂等地區(qū)企業(yè)咨詢
import java.util.ArrayList;
import java.util.List;
/**
*
* @author Administrator
* 購(gòu)物車類:
* 為了方便將商品信息綁訂到session上面而設(shè)計(jì)的一個(gè)
* 工具,提供了商品的添加,刪除,列表,計(jì)價(jià),清空,
* 修改功能。
*/
public class Cart {
//items屬性:用來(lái)保存商品
private ListCartItem items =
new ArrayListCartItem();
/**
* 將商品添加到購(gòu)物車
*/
public boolean add(CartItem item){
for(int i=0;iitems.size();i++){
CartItem curr = items.get(i);
if(curr.getC().getId() == item.getC().getId()){
//該商品已經(jīng)購(gòu)買過(guò)
return false;
}
}
//沒有購(gòu)買過(guò),則添加該商品
items.add(item);
return true;
}
/**
* 從購(gòu)物車當(dāng)中刪除某件商品
*/
public void delete(int id){
for(int i=0;iitems.size();i++){
CartItem curr = items.get(i);
if(curr.getC().getId() == id){
items.remove(curr);
return;
}
}
}
/**
* 獲得購(gòu)物車中所有商品信息
*/
public ListCartItem list(){
return items;
}
/**
* 商品總價(jià)
*/
public double cost(){
double total = 0;
for(int i=0;iitems.size();i++){
CartItem curr = items.get(i);
total += curr.getC().getPrice() * curr.getQty();
}
return total;
}
/**
* 清空購(gòu)物車中的所有商品
*/
public void clear(){
items.clear();
}
/**
* 修改購(gòu)物車中某種商品的數(shù)量
*/
public void modify(int id,int qty){
for(int i=0;iitems.size();i++){
CartItem curr = items.get(i);
if(curr.getC().getId() == id){
curr.setQty(qty);
return;
}
}
}
}
import java.awt.*;
import java.awt.event.*;
class ShopFrame extends Frame implements ActionListener
{ Label label1,label2,label3,label4;
Button button1,button2,button3,button4,button5;
TextArea text;
Panel panel1,panel2;
static float sum=0.0f;
ShopFrame(String s)
{ super(s);
setLayout(new BorderLayout());
label1=new Label("面紙:3元",Label.LEFT);
label2=new Label("鋼筆:5元",Label.LEFT);
label3=new Label("書:10元",Label.LEFT);
label4=new Label("襪子:8元",Label.LEFT);
button1=new Button("加入購(gòu)物車");
button2=new Button("加入購(gòu)物車");
button3=new Button("加入購(gòu)物車");
button4=new Button("加入購(gòu)物車");
button5=new Button("查看購(gòu)物車");
text=new TextArea("商品有:"+"\n",5,10);
text.setEditable(false);
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
}
);
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
button4.addActionListener(this);
button5.addActionListener(this);
panel1=new Panel();
panel2=new Panel();
panel1.add(label1);
panel1.add(button1);
panel1.add(label2);
panel1.add(button2);
panel1.add(label3);
panel1.add(button3);
panel1.add(label4);
panel1.add(button4);
panel2.setLayout(new BorderLayout());
panel2.add(button5,BorderLayout.NORTH);
panel2.add(text,BorderLayout.SOUTH);
this.add(panel1,BorderLayout.CENTER);
this.add(panel2,BorderLayout.SOUTH);
setBounds(100,100,350,250);
setVisible(true);
validate();
}
public void actionPerformed(ActionEvent e)
{ if(e.getSource()==button1)
{ text.append("一個(gè)面紙、");
sum=sum+3;
}
else if(e.getSource()==button2)
{ text.append("一只鋼筆、");
sum=sum+5;
}
else if(e.getSource()==button3)
{ text.append("一本書、");
sum=sum+10;
}
else if(e.getSource()==button4)
{ text.append("一雙襪子、");
sum=sum+8;
}
else if(e.getSource()==button5)
{
text.append("\n"+"總價(jià)為:"+"\n"+sum);
}
}
}
public class Shopping {
public static void main(String[] args) {
new ShopFrame("購(gòu)物車");
}
}
我沒用Swing可能顯示不出來(lái)你的效果。不滿意得話我在給你編一個(gè)。
有兩個(gè)地方錯(cuò)了:
主要的一個(gè)錯(cuò)誤是BookDetail類不存在,而你在ShopCar
類中引用了BookDetail,得寫一個(gè)這樣的類才行。
第二個(gè)錯(cuò)誤的地方為你在類中使用了包,如果使用包的話就不能像一般的類那樣直接使用javac 類名.java這樣的形式編譯了。
而要使用 javac -d . 類名.java才行,其中的-d .的意思是把輸出的.class文件放以包名稱的形式到當(dāng)前文件夾下,當(dāng)然你也可以輸入其它路徑也是可以的。
運(yùn)行的話使用java 包名+類名就可以了,其中是以.分開包和類名稱的。
看一下javac的幫助和java的幫助,里面說(shuō)的很明白的。
編譯的時(shí)候使用javac -d . 類名.java
運(yùn)行的時(shí)候 java 包名.類名
注意如果包里又有子包的話運(yùn)行的時(shí)候包與子包使用.分隔開來(lái)
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;public class ShoppingCartManager {
HashMapString, String hm=new HashMapString, String();
float totlePrice=0;
//添加book到購(gòu)物車
public void addBook(String bookId,String bookQuantity){
if(hm.containsKey(bookId)){
int value=Integer.parseInt(hm.get(bookId));
value+=Integer.parseInt(bookQuantity);
hm.put(bookId, value+"");
}else{
hm.put(bookId, bookQuantity);
}
}
//修改數(shù)量
public void updateQuantity(String bookId,String bookQuantity){
hm.put(bookId, bookQuantity);
}
//獲取購(gòu)物車的所有信息 并計(jì)算總價(jià)
public ArrayListBookBean getShoppingCart(){
ArrayListBookBean al=new ArrayListBookBean();
IteratorString i=hm.keySet().iterator();
String ids="";
BookTableManager btm=new BookTableManager();
while(i.hasNext()){
ids=ids+","+i.next();
}
al= btm.selectByBookIds(ids);
totlePrice=0; //清空總價(jià),防止無(wú)限累計(jì)
for(int j=0;jal.size();j++){
BookBean bb=al.get(j);
totlePrice+=bb.getPrice()*Integer.parseInt(getQuantityById(bb.getBookId()+""));
}
return al;
}
//獲取總價(jià)
public float getTotlePrice(){
return totlePrice;
}
//根據(jù)ID獲取數(shù)量
public String getQuantityById(String id){
String quantity=hm.get(id);
return quantity;
}
//清空購(gòu)物車
public void clear(){
hm.clear();
}
//刪除購(gòu)物車中的一本書
public void deleteById(String id){
hm.remove(id);
}
}