⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 store.java

📁 用java编写的c/s结构的网络社区
💻 JAVA
字号:
package client;


import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.sql.*;
import javax.swing.*;
import javax.swing.event.*;



public class Store extends JPanel implements ListSelectionListener,ActionListener,ItemListener
{
	DataOutputStream dos;
	DataInputStream dis;
	member strMeg;
	bank bk=new bank();
	JList osList;
	Storedb db=new Storedb("商品","user","user");
	JTextField jtf=new JTextField(20);
	JTextField jtf1=new JTextField(20);
	JTextField jtf2=new JTextField("顾客,您好!祝您本次购物愉快!本店客服电话:xxxxxxxxxxx");
	JTable jta=new JTable();
	Object a[][];
	String []os= new String [50];
	JButton b1=new JButton("加入购物车");
	JButton b2=new JButton("结帐");
	JButton b3=new JButton("清除");
	JButton b5=new JButton("商品检索");
	JRadioButton jrb=new JRadioButton("VIP");
	JRadioButton jrb1=new JRadioButton("Ordinary");
	JLabel  l=new JLabel("You may can have some deals in your bussiness!");
	JPanel p=new JPanel();
	JPanel p1=new JPanel();
	JPanel p2=new JPanel();
	JPanel p3=new JPanel();
	int Choose;
	int iNum;
	ClientMessage_member message=new ClientMessage_member();
	ClientMessage_Store message_Store=new ClientMessage_Store();
	Store(DataOutputStream dos,DataInputStream dis,member strMeg)
	{
		this.dis=dis;
		this.dos=dos;
		this.strMeg=strMeg;
		os[0]="按摩器";
		os[1]=" 爆米花";
		os[2]=" 大号储物箱 ";
		os[3]=" 大榛子";
		os[4]=" 电子计步器";		
		os[5]=" 动感护眼仪";		
		os[6]=" 粉红闹钟";
		os[7]="风扇";
		os[8]=" 果 冻";
		os[9]=" 哈啤纯生";
		os[10]=" 黑妹清热牙膏";
		os[11]=" 花儿镜";
		os[12]=" 换鞋凳";
		os[13]=" 活力跳舞毯";
		os[14]=" 火腿肠";
		os[15]=" 今麦郎方便面";
		os[16]=" 开心果";
		os[17]=" 康师傅方便面";
		os[18]=" 木靠背椅";
		os[19]=" 木纤维美容巾";
		os[20]=" 耐克足球";
		os[21]=" 男运动袜";
		os[22]=" 牛肉干";
		os[23]=" 女仕吊带裙";
		os[24]=" 女仕休闲服";
		os[25]=" 乒乓球拍";
		os[26]=" 巧克力";
		os[27]=" 青岛纯生";
		os[28]=" 青岛优质";
		os[29]=" 雀巢咖啡500g";
		os[30]=" 人头马VSOP";
		os[31]=" 人头马XO";
		os[32]=" 人头马干邑";
		os[33]=" 伸缩书挡架";
		os[34]=" 时尚睡衣";
		os[35]=" 手腕式收音机";
		os[36]=" 瘦身束腰";
		os[37]=" 斯伯丁篮球";
		os[38]=" 藤制储物柜";
		os[39]=" 体温计";
		os[40]=" 万福裹发巾";
		os[41]=" 小金龟CD包";
		os[42]=" 火血糖仪";
		os[43]=" 摇马";
		os[44]=" 衣物清洗袋";
		os[45]=" 鹰视太阳镜";
		os[46]=" 浴室壁贴";
		os[47]=" 远红外护腿";
		os[48]=" 中号储物箱";
		os[49]=" 助听器";
		osList=new JList(os);
		
		Object columnName[]={"商品名称","数量"};
		a=new Object[50][2];
		jta=new JTable(a,columnName);
		setLayout(new BorderLayout());
		add(new JScrollPane(osList),BorderLayout.WEST);
		p.setLayout(new GridLayout(3,1,25,25));
		b1.setToolTipText("您选择的商品将出现在中间表格中");
		p.add(b1);

		b2.setToolTipText("购买所选商品");
		p.add(b2);

		b3.setToolTipText("清除购物车中的商品");
		p.add(b3);

		add(p,BorderLayout.EAST);
		p1.setLayout(new FlowLayout());
		p1.add(jtf);
		b5.setToolTipText("按名称搜索商品");
		p1.add(b5);
		p1.add(jtf1);
		b1.addActionListener(this);
		b2.addActionListener(this);
		b3.addActionListener(this);
		b5.addActionListener(this);
		jrb.addItemListener(this);
		jrb1.addItemListener(this);
		add(p1,BorderLayout.SOUTH);
		
		osList.addListSelectionListener(this);
		jrb.setForeground(Color.BLUE);
		jrb.setBackground(Color.WHITE);
		jrb.setMnemonic('V');
		jrb1.setForeground(Color.BLUE);
		jrb1.setBackground(Color.WHITE);
		jrb1.setMnemonic('O');
		ButtonGroup group=new ButtonGroup();
		group.add(jrb);
		group.add(jrb1);
		MovingMessagePanel m=new MovingMessagePanel("Welcome to our store!");
		p2.setLayout(new GridLayout(3,1,5,5));

		p2.add(new JScrollPane(jta));
		p2.add(m);
		p2.add(jtf2);
		Timer timer=new Timer(100,m);
		timer.start();
		add(p2,BorderLayout.CENTER);
		p3.setLayout(new FlowLayout());
		p3.add(jrb);
		p3.add(l);
		p3.add(jrb1);
		add(p3,BorderLayout.NORTH);
		setSize(600,500);
		setVisible(true);
	}
	class MovingMessagePanel extends JPanel implements ActionListener
	{
		private static final long serialVersionUID = -2397593626990759111L;
		String message;
		int x=55;
		int y=70;
		public MovingMessagePanel(String message)
		{
			this.message=message;
		}
		public void actionPerformed(ActionEvent e)
		{
			repaint();
		}
		public void paintComponent(Graphics g)
		{
			super.paintComponent(g);
			if(x>getWidth())
				x=-55;
			x+=5;
			g.drawString(message, x, y);
		}
	}
	public void valueChanged(ListSelectionEvent e)
	{
		if(e.getSource()==osList)
		{
			try{
				db.QueryData(osList.getSelectedValue().toString().trim());
				db.next();
				int VIPprice=db.getInt("VIP价格");
				int price=db.getInt("普通价格");
				repaint();
				jtf1.setText("VIP价格"+VIPprice+"元"+"  普通价格"+price+"元");
			}catch(SQLException ec){
			    ec.printStackTrace();
			}
		}
			
	}
	public void itemStateChanged(ItemEvent e) 
	{
		if(jrb.isSelected())
		{
			Choose=1;
		}
		if(jrb1.isSelected())
		{
			Choose=2;
		}
	}
	public void actionPerformed(ActionEvent e)
	{
		byte [] data=new byte[1024];
		if(e.getSource()==b1)
		{
			
			int flag=0;
			String strName=osList.getSelectedValue().toString().trim();
			try {
				message_Store.UpdateInfo(dos, dis, strName,1);
				int num=dis.read(data);
				System.out.println(new String(data,0,num));
				if(new String(data,0,num).equals("true"))
				{
					for(int k=0;k<iNum;k++)
					{
						if(strName.equals(a[k][0].toString()))
						{
							a[k][1]=Integer.parseInt(a[k][1].toString())+1;
							flag=1;
						}
					}
					if(flag==0)
					{
						a[iNum][0]=strName;
						a[iNum][1]=1;
						iNum++;
					}
				}
				else
				{
					JOptionPane.showMessageDialog(null,"您所购买的商品数量不够 !","警告",JOptionPane.WARNING_MESSAGE);
				}
				
			} catch (IOException e1) {
				e1.printStackTrace();
			}
			
			repaint();
		}
	   if(e.getSource()==b3)
	   {
		   String strName=osList.getSelectedValue().toString().trim();
		   try {
			message_Store.UpdateInfo(dos, dis, strName,2);
			repaint();
			int num=dis.read(data);
			if(new String(data,0,num).equals("true"))
			{
				for(int k=0;k<iNum;k++)
				{
					   if(a[k][0].equals(strName))
						{
							if((a[k][1].equals(1))||(a[k][1].equals("1")))
							{
								for(int i=k;i<iNum;i++)
								{
									a[i][0]=a[i+1][0];
									a[i][1]=a[i+1][1];
								}
								iNum--;
							}
							else
							{
								a[k][1]=Integer.parseInt(a[k][1].toString())-1;
							}
						} 
				    }
			}
			
		} catch (IOException e1) {
			// TODO 自动生成 catch 块
			e1.printStackTrace();
		}
		   
		}
		if(e.getSource()==b2)
		{
			if(Choose!=1&&Choose!=2)
			{
				JOptionPane.showMessageDialog(null,"Please choose VIP or Ordinary !","警告",JOptionPane.WARNING_MESSAGE);
			}
			else if(Choose==1)
			{
				int sum=0;
				try
				{
					for(int q=0;q<iNum;q++)
					{
						db.QueryData(a[q][0].toString().trim());
					    db.next();
					    int VIPprice=db.getInt("VIP价格");
					    int number=Integer.parseInt(a[q][1].toString());
					    sum+=VIPprice*number;
					    
					}
					   
				 }catch(SQLException ec){
				    ec.printStackTrace();
				    }
				 jtf2.setText("您本次消费的金额为:"+String.valueOf(sum)+"元");
			
				try {
					float fBalance=bk.delete(strMeg, sum);
					if(fBalance>=0)
					{
						dos.writeInt(8);
						dis.read(data);
						message.UpdateSingleInfo(dos,null,0,fBalance,3);
					}
					
					} catch (IOException e1) 
					{
					      e1.printStackTrace();
					}
					while(iNum>=0)
					{
						a[iNum][0]=" ";
						a[iNum][1]=" ";
						iNum--;
					}
					iNum=0;
					repaint();
			 }
			if(Choose==2)
			{
				int sum1=0;
				try
				{
					for(int q=0;q<iNum;q++)
					{
						db.QueryData(a[q][0].toString().trim());
					    db.next();
					    int price=db.getInt("普通价格");
					    int number=Integer.parseInt(a[q][1].toString());
					    sum1+=price*number;
					}
			
				}catch(SQLException ec){
				    ec.printStackTrace();
			    }
				 jtf2.setText("您本次消费的金额为:"+String.valueOf(sum1)+"元");
				 try {
						message.UpdateInfo(dos, dis,strMeg.getID(),strMeg.getPW(),null,null, 0,0,4);
						if(dis.readBoolean())
						{
							strMeg.setBalance(dis.readFloat());
						}
					  }catch (IOException e1) {
						e1.printStackTrace();
					 }
				
					try {
						float fBalance=bk.delete(strMeg, sum1);
						if(fBalance>=0)
						{
							dos.writeInt(8);
							dis.read(data);
							message.UpdateSingleInfo(dos,null,0,fBalance,3);
						}
						
						} catch (IOException e1) 
						{
						      e1.printStackTrace();
						}
						while(iNum>=0)
						{
							a[iNum][0]=" ";
							a[iNum][1]=" ";
							iNum--;
						}
						iNum=0;
			}
		}
		else if(e.getSource()==b5)
		{
			
			try{
				db.QueryData(jtf.getText().trim());
				if(db.next())
				{
					int VIPprice=db.getInt("VIP价格");
				    int price=db.getInt("普通价格");
				    int number=db.getInt("数量");
					jtf1.setText("VIP价格"+VIPprice+"元"+"  普通价格"+price+"元"+"  数量"+number);
				}
				else
				{
					JOptionPane.showMessageDialog(null,"无此商品!","警告",JOptionPane.WARNING_MESSAGE);
				}
				
			}catch(SQLException ec){
			    ec.printStackTrace();
			}
		}
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -