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

📄 comfhandler.java

📁 模拟ATM取款机
💻 JAVA
字号:
package com.zfz.controller;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import com.zfz.model.Account;
import com.zfz.view.MainFrame;

public class ComFHandler implements ActionListener {
	private MainFrame win;
	public String s;
	public int ind2;

	public ComFHandler(MainFrame win) {
		this.win = win;
	}

	public void actionPerformed(ActionEvent e) {
		// 登陆操作
		if (win.getViewNum() == 2) {
			enterOp();
		}
		// 取款操作
		if (win.getViewNum() == 4) {
			dowMoney();
		}
		// 修改密码,重新输入密码
		if (win.getViewNum() == 8) {
			rePassward();
		}
		if (win.getViewNum() == 9 && !win.getFd().getText().equals("")) {
			isCompassward();
		}
		// 转账
		if (win.getViewNum() == 6) {
			transferAccount();
		}
		if (win.getViewNum() == 7 && !win.getFd().getText().equals("")) {
			transAccount();
		}
	}

	// 获得用户方法
	public static int ifEnter(Account[] allAcc, String no, String password) {
		int index = -1;
		for (int i = 0; i < allAcc.length; i++) {
			if (allAcc[i].ifMyAccount(no, password)) {
				index = i;
				break;
			}
		}
		return index;
	}

	// 验证是否存在此帐号
	public static int ifAccount(Account[] allAcc, String no) {
		int in = -1;
		for (int i = 0; i < allAcc.length; i++) {
			if (allAcc[i].ifAccount(no)) {
				in = i;
				break;
			}
		}
		return in;
	}

	// 验证登陆方法
	public void enterOp() {
		String cardNum = MainFrame.getCardNo();
		String password = win.getFd().getText();
		MainFrame.setInputCount(MainFrame.getInputCount() + 1);
		int in = ifAccount(win.getAcc(), cardNum);
		int index = ifEnter(win.getAcc(), cardNum, password);
		if (win.getAcc()[in].isFg()) {
			if (index != -1) {
				win.setAccIndex(index);
				win.setViewNum(3);
				win.setProPety();
				MainFrame.setInputCount(0);
			} else {
				if (MainFrame.getInputCount() == 3) {
					win.setViewNum(-1);
					win.setProPety();
					win.getAcc()[in].setFg(false);
					win.getAcc_out_in().myWriteAllObj(win.getAcc());
				} else {
					win.setViewNum(2);
					win.setProPety();
				}
			}
		} else {
			win.setViewNum(0);
			win.getMainLab().setText("卡已锁,快到银行解锁");
			win.setProPety();
		}
		
	}

	// 取款方法
	public void dowMoney() {
		double dm = Integer.parseInt(win.getFd().getText().trim());
		double money = win.getAcc()[win.getAccIndex()].getMoney();
		if (money < dm) {
			win.getMainLab().setText("余额不足,请重新输入");
		} else {
			win.getAcc()[win.getAccIndex()].setMoney(money - dm);
			win.getAcc_out_in().myWriteAllObj(win.getAcc());
			win.setViewNum(3);
			win.setProPety();
			win.getMainLab().setText("取款成功,请选择操作");
			win.getMoneyBut().setText("[__________钱出来了__________]");
		}
		win.getFd().setText("");
	}

	// 修改密码
	public void rePassward() {
		s = win.getFd().getText();
		win.setViewNum(9);
		win.setProPety();
	}

	public void isCompassward() {

		if (win.getFd().getText().equals(s)) {
			win.setViewNum(3);
			win.setProPety();
			win.getAcc()[win.getAccIndex()].setPassword(s);
			win.getAcc_out_in().myWriteAllObj(win.getAcc());
			win.getMainLab().setText("修改成功,请选择操作");
		} else {
			win.setViewNum(8);
			win.setProPety();
			win.getMainLab().setText("输入错误,请重新输入");
			win.getFd().setText("");
		}
	}

	// 转账方法
	public void transferAccount() {
		String no = win.getFd().getText();
		ind2 = win.getAcc_out_in()
				.getOthNo(win.getAcc(), no, win.getAccIndex());
		if (ind2 != -1) {
			win.setViewNum(7);
			win.setProPety();
		} else {
			if (ind2 == win.getAccIndex()) {
				win.getMainLab().setText("不能给自己转账");
			} else {
				win.getMainLab().setText("帐号不存在,请输入");
				win.getFd().setText("");
			}
		}
	}

	public void transAccount() {
		double dm = Integer.parseInt(win.getFd().getText().trim());
		double setmoney = win.getAcc()[win.getAccIndex()].getMoney();
		win.getAcc()[win.getAccIndex()].getMoney();
		if (dm <= win.getAcc()[ind2].getMoney()) {
			win.getAcc()[win.getAccIndex()].setMoney(setmoney - dm);
			win.getAcc()[ind2].setMoney(win.getAcc()[ind2].getMoney()+dm);
			win.getAcc_out_in().myWriteAllObj(win.getAcc());
			win.setViewNum(3);
			win.setProPety();
			win.getMainLab().setText("转账成功,请选择操作");
		} else if (dm > win.getAcc()[ind2].getMoney()) {
			win.getMainLab().setText("余额不足");
			win.getFd().setText("");
		}
	}

}

⌨️ 快捷键说明

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