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

📄 mall.java

📁 一个基于局域网的c/s模式网上购物系统,功能比较全面.数据库为Access.
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
	       	p1.add(buttonPanel4);
       	
	       	/////////////////////////////店铺功能相关/////////////////////////////
	       	JPanel p2 = new JPanel();
	       	p2.setLayout(new GridLayout(3,1));
	       	p2.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY,2),
	  	                "店铺功能选项",TitledBorder.CENTER,TitledBorder.TOP));
       	
       	
		    JPanel buttonPanel5 = new JPanel();
		    b = new JButton("       搜索      ");
	       	b.addActionListener(this);
	       	buttonPanel5.add(b);
	       	
	       	JPanel buttonPanel6 = new JPanel();
		    b = new JButton("       刷新      ");
	       	b.addActionListener(this);
	       	buttonPanel6.add(b);
       	
	       	JPanel buttonPanel7 = new JPanel();
	       	b = new JButton("       退出      ");
	       	b.addActionListener(this);
	       	buttonPanel7.add(b);
       	
	       	
	       	p2.add(buttonPanel5);
	       	p2.add(buttonPanel6);
	       	p2.add(buttonPanel7);

	       	/////////////////////////////店铺列表/////////////////////////////
	       	String[] name = {"商品名称","单价","库存"};
	       	mt = new MyTable(name,0);
       	
	       	dlgtable=new JTable(mt);
	       	dlgtable.addMouseListener(new MouseAdapter()
       		{
       			public void mouseClicked(MouseEvent e)
       			{
       				if(e.getClickCount()>=2)
       				{
						new ViewDialog();
	  				}
        		}
       		});
       	
	       	renovate();
	       	

	       	dlgtable.setPreferredScrollableViewportSize(new Dimension(300,500));
	        JScrollPane sp = new JScrollPane(dlgtable);
	        sp.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.BLACK,2),
	  	                "店铺所有商品列表",TitledBorder.CENTER,TitledBorder.TOP));
	        
	        String[] bname = {"所属店铺","商品名","购入数量","总价","状态"};
       		btable = new MyTable(bname,0);
       		
       		basketStatus=new JTable(btable);
       		basketStatus.setPreferredScrollableViewportSize(new Dimension(300,100));

       		for(int i=0;i<basket.getIndex();i++)
       		{
      			btable.addRow(new Vector());
       			basketStatus.setValueAt(basket.getShop(i),i,0);
       			basketStatus.setValueAt(basket.getName(i),i,1);
       			basketStatus.setValueAt(basket.getQuantity(i),i,2);
       			basketStatus.setValueAt(basket.getPrice(i),i,3);
       			basketStatus.setValueAt(basket.getStatus(i),i,4);
       		}
       		
       		JScrollPane p3 = new JScrollPane(basketStatus);
       		p3.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED,Color.black,Color.lightGray),
	  	                "购物车状态",TitledBorder.CENTER,TitledBorder.TOP));
         
	       	JPanel left = new JPanel();
	       	left.setLayout(new GridLayout(2,1));
	       	left.add(p1);
	       	left.add(p2);
	       	
	       	JPanel right = new JPanel();
       		right.setLayout(new BorderLayout());
       		right.add(sp,BorderLayout.CENTER);
       		right.add(p3,BorderLayout.SOUTH);
	       	
	       	JLabel pic = new JLabel(new ImageIcon(".\\Mpic.jpg"));
	       	
	       	contentPane.add(pic,BorderLayout.NORTH);
	       	contentPane.add(left,BorderLayout.WEST);
	       	contentPane.add(right,BorderLayout.CENTER);
	       	d.setBounds(192,10,640,700);
	       	d.setVisible(true);
		}
	
	
	
		public void actionPerformed(ActionEvent e)
		{
			String cmd=e.getActionCommand();
  	 	
	  	   	if (cmd.equals("       退出      "))
	  		{
	  			try
	  			{
	  				send.println("END");
	  				send.close();
	  				receive.close();
	  				shopSocket.close();
	  			
	 				d.dispose();
	 			}catch(Exception ex){}
	   	 	}
	   	 	
	   	 	else if (cmd.equals("     聊天    "))
	  		{
	  			try
	 			{	send.println("CHAT");
	 				send.println(customer.getUserName());
	 				new ChatClient(customer.getUserName(),IP,d);
	   	 		}
	   	 		catch(Exception ex)
	   	 		{
	   	 			JOptionPane.showMessageDialog(null,"连接失败:"+ex,"ERROR!",2);
	   	 		}
   	 		}
   	 		
   	 		else if (cmd.equals("     留言    "))
   	 		{
   	 			new MessageDialog();
   	 		}
   	 		
   	 		else if(cmd.equals("查看商品"))
   	 		{
   	 			if(dlgtable.getSelectedRow()==-1)
  				{
  					JOptionPane.showMessageDialog(null,"请从右侧的列表中选择一种商品!","错误",2);
  				}
  				
  				else
  				{
  					new ViewDialog();
  				}
   	 		}
   	 		
   	 		else if (cmd.equals("购买商品"))
   	 		{
   	 			if(dlgtable.getSelectedRow()==-1)
  				{
  					JOptionPane.showMessageDialog(null,"请从右侧的列表中选择一种商品!","错误",2);
  				}
  				
  				else
  				{
  					new BuyDialog();
  				}
   	 		}
   	 		
	   	 	else if (cmd.equals("       搜索      "))
	  		{
	 			String goodsName = JOptionPane.showInputDialog(null,"请输入您想要搜索的商品名:","输入您想查找的商品名所包含的信息");
	 			if(goodsName == null)
	 			{
	 				goodsName = "";
	 			}
	 			
	 			while(mt.getRowCount()!=0)
  	 			{
  	 				mt.removeRow(0);
  	 			}
  	 		
	 			if(goodsName.equals(""))
	 			{
	 				renovate();
	 			}
	 			
	 			else
	 			{
	 				out.println("SEARCH");
	 				out.println(shopName);
	 				out.println(goodsName);
	 				
	 				try
	       			{
	       				String info = in.readLine();
	       				int x=0;
	       				while(!info.equals("OVER"))
	       				{
	       					mt.addRow(new Vector());
	       					for(int i=0;i<3;i++)
	       					{
	       						dlgtable.setValueAt(info,x,i);
	       						info = in.readLine();
	       					}
	       					x++;
	       				}
	       			}catch(IOException ex){}
	 			}
	   	 	}
	   	 	
	   	 	else if (cmd.equals("       刷新      "))
	  		{
  	 			renovate();
	   	 	}
		}
		
		public void renovate()
		{
			while(mt.getRowCount()!=0)
  	 		{
  	 			mt.removeRow(0);
  	 		}
  	 			
			out.println("CREATSHOP");
	    	out.println(shopName);
       	
	    	try
	    	{
	    		String info = in.readLine();
	    		int x=0;
	    		while(!info.equals("OVER"))
	    		{
	    			mt.addRow(new Vector());
	    			for(int i=0;i<3;i++)
	    			{
	    				dlgtable.setValueAt(info,x,i);
	    				info = in.readLine();
	    			}
	    			goodsInfo[x] = info;
	    			info = in.readLine();
       				x++;
       			}
       		}catch(IOException ex){}
		}

	}
	
	//////////////////////系统广播监听类//////////////
	class SystemBroadcast extends Thread
	{
		private String broadcastmsg;
		private String next;
		private PrintWriter os;
		private BufferedReader is;
		private Socket listener;
		SystemBroadcast()
		{
			try
			{
				String ip = socket.getInetAddress().getHostAddress();
				listener = new Socket(ip, 8080);
				
				is = 
	    		  new BufferedReader(
	        		new InputStreamReader(
	        		  listener.getInputStream()));
	    
	    		os =
	    			 new PrintWriter(
    				  new BufferedWriter(
     				   new OutputStreamWriter(
       					listener.getOutputStream())),true);
				
			}catch(Exception ex){}
			
			broadcastmsg = "";
			next = "";
			start();
		}
		
		public void run()
		{
			try
			{
				while(!socket.isClosed())
				{
					this.sleep(1000);
					os.println("BROADCAST");
					
					next = is.readLine();
					while(!next.equals("OVER"))
					{
						broadcastmsg +=next+"\n";
						next = is.readLine();
					}
					
					broadcast.setText(broadcastmsg);
					broadcastmsg = "";
				}
			}
			catch(Exception ex){}
		}
	}
	
	//////////////////////购物车确认对话框///////////
	class BasketConfirm
	{
		private JDialog jd;
		private JTable basketStatus;
		private MyTable btable;
		
		BasketConfirm()
		{
			jd = new JDialog(f,"购物车状态",true);
			Container contentPane=jd.getContentPane();
			
			String[] name = {"所属店铺","商品名","购入数量","总价","状态"};
       		btable = new MyTable(name,0);
       		
       		basketStatus=new JTable(btable);

       		for(int i=0;i<basket.getIndex();i++)
       		{
      			btable.addRow(new Vector());
       			basketStatus.setValueAt(basket.getShop(i),i,0);
       			basketStatus.setValueAt(basket.getName(i),i,1);
       			basketStatus.setValueAt(basket.getQuantity(i),i,2);
       			basketStatus.setValueAt(basket.getPrice(i),i,3);
       			basketStatus.setValueAt(basket.getStatus(i),i,4);
       		}
       		
       		JScrollPane p1 = new JScrollPane(basketStatus);
       		
			JPanel buttonPanel=new JPanel();
			JButton b=new JButton("确认购入");
			b.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e)
				{
					if(basketStatus.getSelectedRow()==-1)
  					{
  						JOptionPane.showMessageDialog(null,"请从列表中选择一份定单!","错误",2);
  					}
    					
  					else if(basketStatus.getSelectedRowCount()>1)
  					{
  						for(int i=0;i<basketStatus.getSelectedRows().length;i++)
  						{
  							if(basketStatus.getValueAt(i,4).equals("unconfirmed"))
  							{
  								if(basket.confirm(i,in,out))
  								{
  									JOptionPane.showMessageDialog(null,"    已确认购入商品:"+basketStatus.getValueAt(i,1),"确认成功",1);
  									basketStatus.setValueAt("confirmed",i,4);
  									amount.setText(customer.checkBalance(in,out)+"");
  								}
  							
  								else
  								{
  									JOptionPane.showMessageDialog(null,"购入商品:"+basketStatus.getValueAt(i,1)+"失败!,请检查账户余额是否足够","确认失败",1);
  								}
  							}
  						}
  					}
  					
 					else if(!basketStatus.getValueAt(basketStatus.getSelectedRow(),4).equals("unconfirmed"))
  					{
  						JOptionPane.showMessageDialog(null,"       该商品已处理完成!","更改失败",3);
  					}
  			
  					else
  					{
  						int i =basketStatus.getSelectedRow();
  						if(basket.confirm(i,in,out))
  						{
  							JOptionPane.showMessageDialog(null,"    已确认购入商品:"+basketStatus.getValueAt(i,1),"确认成功",1);
  							basketStatus.setValueAt("confirmed",i,4);
  							amount.setText(customer.checkBalance(in,out)+"");
  						}
  						else
  						{
  							JOptionPane.showMessageDialog(null,"购入商品:"+basketStatus.getValueAt(i,1)+"失败!,请检查账户余额是否足够","确认失败",1);
  						}
  					}
				}
			});
 			buttonPanel.add(b);
			b=new JButton("取消购入");
			b.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e)
				{
					if(basketStatus.getSelectedRow()==-1)
  					{
  						JOptionPane.showMessageDialog(null,"请从列表中选择一份定单!","错误",2);
  					}
  
  					
  					else if(basketStatus.getSelectedRowCount()>1)
  					{
  						for(int i=0;i<basketStatus.getSelectedRows().length;i++)
  						{
  							if(basketStatus.getValueAt(i,4).equals("unconfirmed") && basket.cancel(i,in,out))
  							{
  								JOptionPane.showMessageDialog(null,"    已取消购入商品:"+basketStatus.getValueAt(i,1),"取消成功",1);
  								basketStatus.setValueAt("cancel",i,4);
  								amount.setText(customer.checkBalance(in,out)+"");
  							}
  						}

⌨️ 快捷键说明

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