📄 customerthread.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 + -