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

📄 customerthread.java

📁 课程设计:ATM Project源码
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.border.*;
import java.util.*;
import java.net.*;
import java.io.*;
public class CustomerThread extends Thread
{   
	public static String Card;
	public static String Name;
	public static String ID;
	public static String Password;
    public static double Money;
    public static boolean LostFlag;
    public static boolean State;
	Socket Winsock;
	DataInputStream inData;
	DataOutputStream outData;
	String getcmd;
	Component f;
	MainFrame MainF;
    QuaryPane CardQuary;
    String NewPass="";
	Welcome WelPanel;
	public CustomerThread(Socket s,QuaryPane QuaryForm,Component ComponentF,MainFrame mainf)
	{  
	   Winsock=s;
	   f=ComponentF;
	   MainF=mainf;
	   try{ 
	       inData = new DataInputStream(Winsock.getInputStream());
		   outData = new DataOutputStream(Winsock.getOutputStream());
		   CardQuary=QuaryForm;
		  }
		  catch(IOException e)
		  {} 
	}
	public void run()
	{   
	  while(true)
	  { 	
	   try
	   { 
	      if((getcmd=new String(inData.readUTF()))!=null);
	      {
	      	System.out.println("Received from Server:");
	      	System.out.println(getcmd);
	        ProcessData(getcmd);
	      }
	   } 
	   catch (IOException e)
	   { 	
	     System.out.println(e.toString());
	     break;
	   }
	   catch (Exception e)
	   {    
	     System.out.println(e.toString());
	     break;
	   }
	  }
	}
	public void SendPick(double Cash) throws IOException
	{
		outData.writeUTF("PICK:|CARD:"+Card+"|CASH:"+Cash+"|PASS1"+Password);
	}
	public void SendQuary(String card,String pass,Welcome w) throws IOException
	{
		WelPanel=w;
		outData.writeUTF("FLSH:|CARD:"+card+"|PASS1"+pass);
	}
	public void SendQuary() throws IOException
	{
		outData.writeUTF("FLSH:|CARD:"+Card+"|PASS1"+Password);
	}
	public void SendTurn(String toCard,double Cash) 
	{
		try{
		    outData.writeUTF("TURN:|CARD:"+Card+"|ACCT:"+toCard+"|CASH:"+Cash+"|PASS1"+Password);
		   }
		   catch(IOException e)
		   {} 
	}
	public void SendPass(String newPassword) throws IOException
	{
		NewPass=new String(newPassword);
		outData.writeUTF("PASS:|CARD:"+Card+"|PASS1"+Password+"|PASS2"+NewPass);
		
	}
	private void ProcessData(String command)
	{
	    
		StringTokenizer st=new StringTokenizer(command,"|");
		String[] tokens=new String[st.countTokens()];
		int i=0;
		String tmpCard = "";
        String tmpName="";
		String tmpPass ="";
		String tmpAcct="";
		double tmpCash=0;
		boolean tmpLostFlag=false;
		boolean tmpState=false;
		while(st.hasMoreTokens())
		{
			tokens[i]=st.nextToken();
		  if(tokens[i].length()>4){	
			if(tokens[i].trim().substring(0,5).toUpperCase().equals("CARD:"))
			{
		    	tmpCard = new String(tokens[i].trim().substring(5));
		    	System.out.println(tmpCard);
		    	CardQuary.ResultID.setText(tmpCard);
	     	}
			if(tokens[i].trim().substring(0,5).toUpperCase().equals("CASH:"))
			{
				tmpCash = Double.parseDouble(tokens[i].trim().substring(5));
				System.out.println(tmpCash);
				CardQuary.ResultCash.setText(String.valueOf(tmpCash)+" RMB");
			}
			if(tokens[i].trim().substring(0,5).toUpperCase().equals("ACCT:"))
			{
			    tmpAcct = new String(tokens[i].trim().substring(5));
			    System.out.println(tmpAcct);
			}    
			if(tokens[i].trim().substring(0,5).toUpperCase().equals("PASS:"))
			{
			    tmpPass = new String(tokens[i].trim().substring(5));
			    System.out.println(tmpPass);
			}    
			if(tokens[i].trim().substring(0,5).toUpperCase().equals("STAT:"))
			{
			     tmpState = tokens[i].trim().substring(5).toUpperCase().equals("FALSE")?false:true;
			     System.out.println(tmpState);
			}     
			if(tokens[i].trim().substring(0,5).toUpperCase().equals("SIGN:"))
			{
			     tmpLostFlag = tokens[i].trim().substring(5).toUpperCase().equals("FALSE")?false:true;
			     System.out.println(tmpLostFlag);
			}
			if(tokens[i].trim().substring(0,5).toUpperCase().equals("NAME:"))
			{
			     tmpName = new String(tokens[i].trim().substring(5));
			     System.out.println(tmpName);
			     CardQuary.ResultName.setText(tmpName);
			}          
		  }	
			i++;
		}
		
		switch (Integer.parseInt(command.trim().substring(0,3)))
		{
		  case 110:
		           Card= tmpCard;
		           Name=tmpName;
		           Password=tmpPass;
		           Money=tmpCash;
		           LostFlag=tmpLostFlag;
		           State=tmpState;
		           WelPanel.l1.setText("密码正确,请继续选择相应操作!");
		           WelPanel.l3.setVisible(false);
		           WelPanel.txtPass.setVisible(false);
		           MainF.EnableButton();
		           break;
		  case 250:JOptionPane.showMessageDialog(f,"转帐操作已成功完成! ", "提示:", JOptionPane.INFORMATION_MESSAGE);
                   break;
          case 130: WelPanel.l1.setText("密码错误,请重新输入!");
                    WelPanel.txtPass.setText("");
                    break;          
          case 220:
          case 320:JOptionPane.showMessageDialog(f,"原密码错误!请检查输入是否正确。", "警告:", JOptionPane.INFORMATION_MESSAGE);
                   break;         
		  case 350:Password=new String(NewPass);
		           JOptionPane.showMessageDialog(f,"密码修改已成功完成!", "提示:", JOptionPane.INFORMATION_MESSAGE);
                   break;         
          case 550:JOptionPane.showMessageDialog(f,"取款操作已成功完成!", "提示:", JOptionPane.PLAIN_MESSAGE,new ImageIcon(".\\gif\\money.gif"));
                   break;
          case 560:JOptionPane.showMessageDialog(f,"卡上金额不足,无法完成取款或转帐操作!", "提示:", JOptionPane.INFORMATION_MESSAGE);
                   break;          
         }
        
	}
	/*
服务器返回信息协议
110    ATM客户信息数据包
250    命令操作成功完成
500    命令不可识别
551    非法ATM卡号
553    ATM卡被冻结
554    ATM卡已挂失
221    密码验证失败
886    服务器要求关闭连接
452    服务器已超出最大连接数
*/
}

⌨️ 快捷键说明

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