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

📄 shopmanager.java

📁 一个基于局域网的c/s模式网上购物系统,功能比较全面.数据库为Access.
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
	    gbc.gridy=1;
	    p1.add(l2,gbc);
	    
	    amount = new JTextField(6);
	    gbc.gridx=1;
	    amount.setEditable(false);
	    amount.setText(merchant.checkBalance(in,out)+"");
	    p1.add(amount,gbc);

       	b = new JButton("存款");
       	b.addActionListener(this);
       	gbc.gridx=0;
       	gbc.gridy=2;
       	p1.add(b,gbc);

       	b = new JButton("取款");
       	b.addActionListener(this);
       	gbc.gridx=1;
       	gbc.gridy=2;
       	gbc.gridwidth = GridBagConstraints.REMAINDER;
       	p1.add(b,gbc);
       	
       	
       	/////////////////////////////店铺功能相关/////////////////////////////
       	JPanel p2 = new JPanel();
       	p2.setLayout(new GridLayout(7,1));
       	p2.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY,2),
	  	                "店铺功能选项",TitledBorder.CENTER,TitledBorder.TOP));

       	JPanel switchPanel = new JPanel();
       	switchButton = new JButton("     开店    ");
       	switchButton.addActionListener(this);
       	switchPanel.add(switchButton);

	    JPanel buttonPanel1 = new JPanel();
	    b = new JButton("添加商品");
       	b.addActionListener(this);
       	buttonPanel1.add(b);
       	
       	JPanel buttonPanel2 = new JPanel();
       	b = new JButton("编辑商品");
       	b.addActionListener(this);
       	buttonPanel2.add(b);
       	
       	JPanel buttonPanel3 = new JPanel();
       	b = new JButton("删除商品");
       	b.addActionListener(this);
       	buttonPanel3.add(b);
       	
       	JPanel buttonPanel4 = new JPanel();
       	b = new JButton("查看留言");
       	b.addActionListener(this);
       	buttonPanel4.add(b);
       	
       	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);

		p2.add(switchPanel);
       	p2.add(buttonPanel1);
       	p2.add(buttonPanel2);
       	p2.add(buttonPanel3);
       	p2.add(buttonPanel4);
       	p2.add(buttonPanel5);
       	p2.add(buttonPanel6);
         	
       	
       	/////////////////////////////店铺列表/////////////////////////////
       	String[] name = {"商品名称","单价","库存"};
       	defaultModel = new MyTable(name,0);
       	
       	table=new JTable(defaultModel);
       	
       	table.addMouseListener(new MouseAdapter()
       	{
       		public void mouseClicked(MouseEvent e)
       		{
       			if(e.getClickCount()>=2)
       			{
					new EditDialog();
	  			}
        	}
       	});
       	
       	table.addKeyListener(new KeyListener()
       	{
       		public void keyTyped(KeyEvent e)
  			{
  		
  			}
  	
  			public void keyReleased(KeyEvent e)
  			{

  			}
  			
  			public void keyPressed(KeyEvent e)
  			{
  				if(e.getKeyCode()==KeyEvent.VK_DELETE)
  				{
  					deleteGoods();
  				}
  			}
       	});
       	
 
       	table.setPreferredScrollableViewportSize(new Dimension(300, 80));
        JScrollPane sp = new JScrollPane(table);
        sp.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.BLACK,2),
	  	                "现有商品列表",TitledBorder.CENTER,TitledBorder.TOP));
        
        
        String[] order = {"定单流水号","顾客名","商品名","订货数量"};
        orderListModel = new MyTable(order,0);
        orderList = new JTable(orderListModel);
        orderList.addMouseListener(new MouseAdapter()
       	{
       		public void mouseClicked(MouseEvent e)
       		{
       			if(e.getClickCount()>=2)
       			{
					int choose = JOptionPane.showConfirmDialog(null,"是否确认已发出该定单所指定的商品?","发货完成确认",JOptionPane.YES_NO_OPTION);
	  				if(choose==JOptionPane.YES_OPTION)
	  				{
	  					out.println("SENT");
	  					out.println(orderList.getValueAt(orderList.getSelectedRow(),0));
	  					
	  					viewOrder();
	  				}
	  			}
        	}
       	});
        
        orderList.setPreferredScrollableViewportSize(new Dimension(300, 80));
        JScrollPane spo = new JScrollPane(orderList);
        spo.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.RED,2),
	  	                "已收到货款等待发货的订单列表",TitledBorder.CENTER,TitledBorder.TOP));
	  	                
        
        ad = new JTextArea(5,30);
        ad.setFont(new Font("SansSerif",Font.PLAIN,16));
        JScrollPane adsp = new JScrollPane(ad);
        adsp.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.BLUE,2),
	  	                "广告信息",TitledBorder.CENTER,TitledBorder.TOP));
       	
       	
       	JPanel left = new JPanel();
       	left.setLayout(new BorderLayout());
       	left.add(p1,BorderLayout.NORTH);
       	left.add(p2,BorderLayout.CENTER);
       	
      	JPanel right = new JPanel();
       	right.setLayout(new BorderLayout());
       	right.add(spo,BorderLayout.NORTH);
       	right.add(sp,BorderLayout.CENTER);
      	right.add(adsp,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);
       	f.setBounds(192,10,640,700);
       	f.setVisible(true);

       	f.addWindowListener(new WindowAdapter(){
   	   		public  void windowClosing(WindowEvent e){
 			try
 			{
 				if(isOpen)
 				{
 					out.println("AD");
		  	 		out.println(merchant.getUserName()+"的商店:"+merchant.getShopName()+"关店了!");
		  	 		out.println("OVER");
 				}
 				close();
 				saveMsg();
 				logout();
 				in.close();
 				out.close();
 				socket.close();
 			}catch(IOException ex){}  	   	
   	   		 System.exit(0);
   	   		}	
     	});
     	
     	renovate();
     	viewOrder();
     	
     	new ShopServer(merchant.getUserName());
     	new OrderCheck();
	}
	
	///////////////////////事件处理///////////////////
	public void actionPerformed(ActionEvent e)
	{
		String cmd=e.getActionCommand();
  		if (cmd.equals("存款"))
  		{
  			String str = JOptionPane.showInputDialog(null,"请输入存款额:","0.0");
  			if(str!=null)
  			{
  				try
  				{
  					double Amount = Double.parseDouble(str);
  					if(Amount<99999)
  					{
  						merchant.deposit(Amount,in,out);
  						amount.setText(merchant.checkBalance(in,out)+"");
  					}
  					else
  					{
  						JOptionPane.showMessageDialog(null,"虽说这是虚拟的,但您也太贪了吧-_-","失败",2);
  					}
  				}
  				catch(Exception ex)
  				{
  					JOptionPane.showMessageDialog(null,"             存款失败","失败",2);
  				}
  			}
  	 	}
  	 	
  	 	else if (cmd.equals("取款"))
  		{
  			String str = JOptionPane.showInputDialog(null,"请输入取款额:","0.0");
  			if(str!=null)
  			{
  				try
  				{
  					double Amount = Double.parseDouble(str);
  					if(Amount<=Double.parseDouble(amount.getText()))
  					{
  						merchant.withdraw(Amount,in,out);
  						amount.setText(merchant.checkBalance(in,out)+"");
  					}
  					else
  					{
  						JOptionPane.showMessageDialog(null,"          您的余额不足!","失败",2);
  					}
  				}
  				catch(Exception ex)
  				{
  					JOptionPane.showMessageDialog(null,"             取款失败","失败",2);
  				}
  			}
  	 	}
  	 	
  	 	else if(cmd.equals("  修改个人信息  "))
  	 	{
  	 		new UserEditDialog(f,merchant,in,out);
  	 		
  	 		try
  	 		{
  	 			out.println("VIEW");
  	 			out.println(merchant.getId());
  	 			merchant.setUserName(in.readLine());
  	 			merchant.setPassword(in.readLine());
  	 			merchant.setAccount(Integer.parseInt(in.readLine()));
  	 			user.setText(merchant.getUserName());
  	 		}catch(Exception ex){}
  	 	}
  	 	
  	 	else if(cmd.equals("  修改店铺信息  "))
  	 	{
  	 		new ShopEditDialog();
  	 	}
  	 	
  	 	else if (cmd.equals("添加商品"))
  		{
 			new AddDialog();
 			renovate();
   	 	}
  	 	
  	 	else if (cmd.equals("编辑商品"))
  		{
  			if(table.getSelectedRow()==-1)
  			{
  				JOptionPane.showMessageDialog(null,"请从右侧的列表中选择一种需要编辑的商品!","编辑错误",2);
  			}
  			
  			else
  			{
  				new EditDialog();
  			}
  	 	}
  	 	
  	 	else if (cmd.equals("删除商品"))
  		{
  			if(table.getSelectedRow()==-1)
  			{
  				JOptionPane.showMessageDialog(null,"请从右侧的列表中选择一种将要删除的商品!","编辑错误",2);
  			}
  			
  			else
  			{
  				deleteGoods();
  				renovate();
  			}
  	 	}
  	 	
  	 	else if (cmd.equals("查看留言"))
  	 	{
  	 		new CheckMessageDialog();
  	 	}
  	 	
  	 	else if (cmd.equals("发送广告"))
  	 	{
  	 		out.println("AD");
  	 		out.println(merchant.getUserName()+":"+ad.getText());
  	 		out.println("OVER");
  	 		ad.setText("");
  	 	}
  	 	
  	 	
  	 	else if(cmd.equals("     开店    "))
  	 	{
  	 		open();
  	 		switchButton.setText("     打烊    ");
  	 		isOpen = true;
  	 		out.println("AD");
  	 		out.println(merchant.getUserName()+"的商店:"+merchant.getShopName()+"开店了!");
  	 		out.println("OVER");
  	 	}
  	 	
  	 	else if(cmd.equals("     打烊    "))
  	 	{
  	 		close();
  	 		switchButton.setText("     开店    ");
  	 		isOpen = false;
  	 		out.println("AD");
  	 		out.println(merchant.getUserName()+"的商店:"+merchant.getShopName()+"关店了!");
  	 		out.println("OVER");
  	 	}
  	 	
  	 	else if (cmd.equals("     退出    "))
  		{
 			try
 			{
 				if(isOpen)
 				{
 					out.println("AD");
		  	 		out.println(merchant.getUserName()+"的商店:"+merchant.getShopName()+"关店了!");
		  	 		out.println("OVER");
 				}
 				close();
 				saveMsg();
 				logout();
 				in.close();
 				out.close();
 				socket.close();
 			}catch(IOException ex){}  	   	
   	   		 System.exit(0);
   	 	}
	}
	
	public void saveMsg()
	{
		try
		{
			File f= new File(merchant.getShopName()+".txt");
			RandomAccessFile writeData = new RandomAccessFile(f,"rw");
		
			writeData.setLength(0);
			writeData.writeBytes(message);
			
			writeData.close();
		}catch(Exception ex){ex.printStackTrace();}
	}
	
	public void loadMsg()
	{
		try
		{
			File f= new File(merchant.getShopName()+".txt");
			if(!f.exists())
			{
				System.out.print("no file");
				f.createNewFile();
			}
			RandomAccessFile readData = new RandomAccessFile(f,"r");
			
			String string=readData.readLine();
			while(string!=null)
			{
				message += string+"\n";
				string = readData.readLine();
			}
			
			readData.close();
			
		}catch(Exception ex){ex.printStackTrace();}
	}
	
	public void logout()
	{
		try
		{	out.println("LOGOUT");
			out.println(merchant.getUserName());
			out.println(merchant.getId());
			
			out.println("END");
			
			in.close();
			out.close();
			this.socket.close();
		}catch(IOException e){}
	}
	
	public void updateMSG(String msg)
	{
		message += "\n"+msg;
	}
	
	public void deleteGoods()
	{
		if(JOptionPane.showConfirmDialog(null,"    确定要删除:"+table.getValueAt(table.getSelectedRow(),0)+"吗?","确认删除",JOptionPane.CANCEL_OPTION,3)==JOptionPane.YES_OPTION)
  		{
  			try
  			{
  				String goodsName = (String)table.getValueAt(table.getSelectedRow(),0);
  				out.println("DELETE");
  				out.println(merchant.getShopName());
  				out.println(goodsName);
  						
  				String result = in.readLine();
  	 	 		if(result.equals("SUCCESS"))
  	 	 		{
  	 	 			defaultModel.removeRow(table.getSelectedRow());
  	 	 			
  	 	 			table.revalidate();
  	 	 			
  	 	 			JOptionPane.showMessageDialog(null,"         已删除商品:"+goodsName,"删除成功",2);
  	 	 		}
  	 	 		else
  	 	 		{
  	 	 			JOptionPane.showMessageDialog(null,"           更新信息失败!","提交失败",2);
  	 	 		}
  	 	 	}catch(IOException ex){}
  		}
	}
	
	public void renovate()
	{
		while(defaultModel.getRowCount()!=0)
  	 	{
  	 		defaultModel.removeRow(0);
  	 	}
  	 	
		out.println("CREATSHOP");
       	out.println(merchant.getShopName());
       	
       	try
       	{
       		String info = in.readLine();
       		int x=0;
       		while(!info.equals("OVER"))
       		{
       			defaultModel.addRow(new Vector());
       			for(int i=0;i<3;i++)
       			{
       				table.setValueAt(info,x,i);
       				info = in.readLine();
       			}
       				goodsInfo[x] = info;
       				info = in.readLine();
       			x++;
       		}
       	}catch(IOException e){}

      	
       	
	}
	
	public void viewOrder()
	{
		while(orderListModel.getRowCount()!=0)
  	 	{
  	 		orderListModel.removeRow(0);
  	 	}
  	 	
		out.println("OUTPUTORDER");
       	out.println(merchant.getShopName());
       	try
       	{
       		String info = in.readLine();
       		int x=0;
       		while(!info.equals("OVER"))
       		{
       			orderListModel.addRow(new Vector());
       			for(int i=0;i<4;i++)
       			{
       				orderList.setValueAt(info,x,i);
       				info = in.readLine();
       			}
       			x++;
       		}
       	}catch(IOException e){}
	}
	
	public void open()
	{
		out.println("OPEN");
       	out.println(merchant.getShopName());
       	out.println(merchant.getId());
	}
	
	public void close()
	{
		out.println("CLOSE");
       	out.println(merchant.getShopName());
       	out.println(merchant.getId());
	}
}

⌨️ 快捷键说明

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