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

📄 bank.java

📁 该系统能够根据银行用户的要求
💻 JAVA
字号:
/* * 本类主要实现银行的注册账户、登录账户、修改密码、存取钱等最基本工作,不过这里没详述它的细节。 */package guiPackage;import static userPackage.ManageUser.findUser;import java.awt.BorderLayout;import java.awt.CardLayout;import java.awt.Container;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;import userPackage.User;//Land类用于模拟ATM的界面public class Bank implements ActionListener{	private JFrame frame;	private Container contentPane;	private String name;	private String password;	//登录界面	private JLabel userLbl, pwdLbl, message0;	private JTextField userText;	private JPasswordField pwdText;	private JButton okBtn, exitBtn;	//执行界面	private JLabel message1;	private JButton balanceBtn, chpwdBtn, withdrawBtn, savingBtn;	private JButton returnBtn1;	//修改密码	private JLabel message2;	private JLabel oldpwdLbl, newpwdLbl, rnewpwdLbl;	private JPasswordField oldpwdTxt, newpwdTxt, rnewpwdTxt;	private JButton okBtn2, returnBtn2;		//存储现金	private JLabel message3;	private JLabel saveLbl;	private JTextField saveField;	private JButton okBtn3,returnBtn3;		//提取现金	private JLabel message4;	private JButton[] moneyBtn = new JButton[5];	private JButton returnBtn4; 		//private User user=new User();		public Bank(){		frame = new JFrame("*********银行系统*********");		frame.setBounds(300, 100, 400, 300);		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		frame.setResizable(false);		contentPane = frame.getContentPane();		initGUI();	}	//本函数定义一个卡类型的布局,准备以后本界面切卡形式实现界面	public void initGUI(){		contentPane.setLayout(new CardLayout());		contentPane.add(getPanel(0), "");	}	public void loadLand(int id){		contentPane.add(getPanel(id), "");		//取得的界面切卡形式切换界面		CardLayout c = (CardLayout)contentPane.getLayout();		c.next(contentPane);	}	public JPanel getPanel(int id){		JPanel panel = null;		switch(id){		case 0:{			//登录界面的实现			message0 = new JLabel("中国牧业银行欢迎您!");			userLbl = new JLabel("   账户名: ");			pwdLbl = new JLabel("账户密码: ");			userText = new JTextField(10);			pwdText = new JPasswordField(10);			okBtn = new JButton("确定");			exitBtn = new JButton("退出");			okBtn.setSize(4, 2);			exitBtn.setSize(4, 2);			JPanel panel0 = new JPanel(new FlowLayout());			JPanel panel01 = new JPanel(new FlowLayout());			JPanel panel02 = new JPanel(new FlowLayout());			panel01.add(userLbl);			panel01.add(userText);			panel02.add(pwdLbl);			panel02.add(pwdText);			panel0.add(panel01);			panel0.add(panel02);			panel = new JPanel(new BorderLayout());			panel.add(message0, BorderLayout.NORTH);			panel.add(panel0, BorderLayout.CENTER);			JPanel panel03 = new JPanel(new BorderLayout());			JPanel panel04 = new JPanel(new BorderLayout());			JPanel panel030 = new JPanel(new FlowLayout());			JPanel panel040 = new JPanel(new FlowLayout());			panel030.add(okBtn);			panel03.add(panel030, BorderLayout.SOUTH);			panel040.add(exitBtn);			panel04.add(panel040, BorderLayout.SOUTH);			panel.add(panel03, BorderLayout.WEST);			panel.add(panel04, BorderLayout.EAST);			//然后对两个按钮添加监听,准备做事件			okBtn.addActionListener(this);			exitBtn.addActionListener(this);		}break;		case 1:{			//执行界面的实现			message1 = new JLabel("******中国牧业银行欢迎您******");			balanceBtn = new JButton("查询");			chpwdBtn = new JButton("修改密码");			withdrawBtn = new JButton("取款");			savingBtn = new JButton("存款");			returnBtn1 = new JButton("返回");			JPanel panel1 = new JPanel(new GridLayout(3, 1, 200, 20));			JPanel panel2 = new JPanel(new GridLayout(3, 1, 200, 20));			panel1.add(balanceBtn);			panel1.add(chpwdBtn);			panel1.add(new JLabel(" "));			panel2.add(withdrawBtn);			panel2.add(savingBtn);			panel2.add(returnBtn1);			panel = new JPanel(new BorderLayout());			panel.add(message1, BorderLayout.NORTH);			panel.add(panel1, BorderLayout.WEST);			panel.add(panel2, BorderLayout.EAST);			//然后对五个按钮添加监听,准备做事件			balanceBtn.addActionListener(this);			chpwdBtn.addActionListener(this);			withdrawBtn.addActionListener(this);	    	savingBtn.addActionListener(this);			returnBtn1.addActionListener(this);		}break;		case 2:{			//修改密码界面的实现			message2 = new JLabel(" ");			oldpwdLbl = new JLabel("     旧密码: ");			newpwdLbl = new JLabel("     新密码: ");			rnewpwdLbl = new JLabel(" 重复新密码: ");			oldpwdTxt = new JPasswordField(10);			newpwdTxt = new JPasswordField(10);			rnewpwdTxt = new JPasswordField(10);			okBtn2 = new JButton("  确定  ");			returnBtn2 = new JButton("返回");			JPanel panel2 = new JPanel(new FlowLayout());			JPanel panel20 = new JPanel(new FlowLayout());			JPanel panel21 = new JPanel(new FlowLayout());			JPanel panel22 = new JPanel(new FlowLayout());			panel20.add(oldpwdLbl);			panel20.add(oldpwdTxt);			panel21.add(newpwdLbl);			panel21.add(newpwdTxt);			panel22.add(rnewpwdLbl);			panel22.add(rnewpwdTxt);			panel2.add(panel20);			panel2.add(panel21);			panel2.add(panel22);			panel = new JPanel(new BorderLayout());			panel.add(message2, BorderLayout.NORTH);			panel.add(panel2, BorderLayout.CENTER);			JPanel panel3 = new JPanel(new BorderLayout());			JPanel panel30 = new JPanel(new FlowLayout());			panel30.add(okBtn2);			panel3.add(panel30, BorderLayout.SOUTH);			JPanel panel4 = new JPanel(new BorderLayout());			JPanel panel40 = new JPanel(new FlowLayout());			panel40.add(returnBtn2);			panel4.add(panel40, BorderLayout.SOUTH);			panel.add(panel3, BorderLayout.WEST);			panel.add(panel4, BorderLayout.EAST);			//然后对两个按钮添加监听,准备做事件			okBtn2.addActionListener(this);			returnBtn2.addActionListener(this);		}break;		case 4:{			//存储现金界面的实现			message3=new JLabel("系统等待存现金....");			saveLbl=new JLabel("存储金额:");			saveField=new JTextField(10);			panel = new JPanel(new BorderLayout());			panel.add(message3,BorderLayout.NORTH);			JPanel panel40=new JPanel(new FlowLayout());			panel40.add(saveLbl);			panel40.add(saveField);			panel.add(panel40,BorderLayout.CENTER);			saveField.grabFocus();			okBtn3=new JButton("确定");			returnBtn3=new JButton("返回");			JPanel panel41=new JPanel(new FlowLayout());			JPanel panel42=new JPanel(new FlowLayout());			JPanel panel14=new JPanel(new BorderLayout());			JPanel panel24=new JPanel(new BorderLayout());			panel41.add(okBtn3);			panel42.add(returnBtn3);			panel14.add(panel41,BorderLayout.SOUTH);			panel24.add(panel42,BorderLayout.SOUTH);			panel.add(panel14,BorderLayout.WEST);			panel.add(panel24,BorderLayout.EAST);			//然后对两个按钮添加监听,准备做事件			okBtn3.addActionListener(this);			returnBtn3.addActionListener(this);					}break;		case 3:{			//提取现金界面的实现			message4 = new JLabel("您取出的钱不能少于 100元!");			for(int i=0; i<5; i++){				moneyBtn[i] = new JButton((i+1) + "00");				moneyBtn[i].addActionListener(this);			}			returnBtn4 = new JButton("返回");			returnBtn4.addActionListener(this);			JPanel panel31 = new JPanel(new GridLayout(3, 1, 200, 20));			JPanel panel32 = new JPanel(new GridLayout(3, 1, 200, 20));			panel31.add(moneyBtn[0]);			panel31.add(moneyBtn[1]);			panel31.add(moneyBtn[2]);			panel32.add(moneyBtn[3]);			panel32.add(moneyBtn[4]);			panel32.add(returnBtn4);			panel = new JPanel(new BorderLayout());			panel.add(message4, BorderLayout.NORTH);			panel.add(panel31, BorderLayout.WEST);			panel.add(panel32, BorderLayout.EAST);		}		}		return panel;	}			public void actionPerformed(ActionEvent e){		//登录界面的监听事件		if(e.getSource() == okBtn){			//getText() 返回此 TextComponent(文本框)中包含的文本			//toLowerCase()使用默认语言环境的规则将此 String 中的所有字符都转换为小写。			//trim()返回字符串的副本,忽略前导空白和尾部空白			//如果查找账户函数里用户不为空就调用loadLand()			name = userText.getText().toLowerCase().trim();			password = pwdText.getText().toLowerCase().trim();			if(findUser(name,password) != null){				loadLand(1);				for(int i=1;i<=3;i++){					BankATM b=new BankATM(i,name,password);					b.go();				}			}			else{				//登录名和密码任一个不对就输出下条语句,然后对用户名和密码输入文本框清零				//userTest.grabFocus()是用户名输入文本框处取得交互点				message0.setText("您输入的账户名或密码不正确!");				userText.setText("");					pwdText.setText("");				userText.grabFocus();			}			return;		}		//退出登录界面时执行本操作		if(e.getSource() == exitBtn){			frame.hide();			return;		}		//执行界面的监听事件		if(e.getSource() == balanceBtn){//查询余额			//取得本用户的账户,然后账户里查询得到余额			double d = (findUser(name, password).getAccount().getBalance());			message1.setText("您的余额为:" + d);			return;		}		if(e.getSource() == chpwdBtn){//修改密码			loadLand(2);			oldpwdTxt.grabFocus();			return;		}			if(e.getSource() == withdrawBtn){//提取现金			loadLand(3);			return;		}		if(e.getSource() == savingBtn){			loadLand(4);			saveField.grabFocus();			return;		}		//取得返回按钮 返回到登录界面		if(e.getSource() == returnBtn1){//返回			loadLand(0);						return;		}		//修改密码界面的监听事件		if(e.getSource() == okBtn2){			String pwd1 = oldpwdTxt.getText().toLowerCase().trim();			String pwd2 = newpwdTxt.getText().toLowerCase().trim();			String pwd3 = rnewpwdTxt.getText().toLowerCase().trim();			//如果输入原密码不对输出提示语句			if(!pwd1.equals(password)){				message2.setText("您输入的旧密码不正确!");				oldpwdTxt.setText("");				newpwdTxt.setText("");				rnewpwdTxt.setText("");				oldpwdTxt.grabFocus();			}			//如果两次输入的新密码不一致输出提示语句			else if(!pwd2.equals(pwd3)){				message2.setText("您输入的新密码不一致!");				oldpwdTxt.setText("");             newpwdTxt.setText("");				rnewpwdTxt.setText("");             oldpwdTxt.grabFocus();			}			else if(pwd3.length()!= 6){				message2.setText("您输入的新密码必须六位字符!");				oldpwdTxt.setText("");             newpwdTxt.setText("");				rnewpwdTxt.setText("");             oldpwdTxt.grabFocus();			}			else {				User u = findUser(name, password);				u.setPwd(pwd2);								message2.setText("修改成功!");			}			return;		}		//如果得到返回按钮就返回到执行界面		if(e.getSource() == returnBtn2){			loadLand(1);			return;		}		//存储现金界面的监听事件		if(e.getSource()==okBtn3){			//取得本用户的账户,然后账户里查询得到添加函数进行添加金额			String s=saveField.getText().trim();			if(s.length()!=0){			double amount=Double.parseDouble(s);		   if(amount%10==0){			if(findUser(name, password).getAccount().deposit(amount)){				double d = (findUser(name, password).getAccount().getBalance());				message3.setText("您已成功存储"+amount+"元;总余额为:"+d+"元");			}			else				message3.setText("存储失败!");			}			else				message3.setText("请存储被十整除的现金!");				saveField.setText("");				saveField.grabFocus();			}			else				message3.setText("请存储金额不为空!");             saveField.grabFocus();						}		if(e.getSource()==returnBtn3){			loadLand(1);			return;		}		//提取现金		if(e.getSource() == moneyBtn[0]){			double amount = 100.0;			if((findUser(name, password)).getAccount().withdraw(amount)){				double d = (findUser(name, password).getAccount().getBalance());				message4.setText("您成功地取出 100.0元,现在的余额为:"+d+"元");			}			else 				message4.setText("对不起!你的余额不足,取出失败!");			return;		}		if(e.getSource() == moneyBtn[1]){			double amount = 200.0;			if((findUser(name, password)).getAccount().withdraw(amount)){				double d = (findUser(name, password).getAccount().getBalance());				message4.setText("您成功地取出 200.0元,现在的余额为:"+d+"元");			}			else 				message4.setText("对不起!你的余额不足,取出失败!");			return;		}		if(e.getSource() == moneyBtn[2]){			double amount = 300.0;			if((findUser(name, password)).getAccount().withdraw(amount)){				double d = (findUser(name, password).getAccount().getBalance());				message4.setText("您成功地取出 300.0元,现在的余额为:"+d+"元");			}			else 				message4.setText("对不起!你的余额不足,取出失败!");			return;		}		if(e.getSource() == moneyBtn[3]){			double amount = 400.0;			if((findUser(name, password)).getAccount().withdraw(amount)){				double d = (findUser(name, password).getAccount().getBalance());				message4.setText("您成功地取出 400.0元,现在的余额为:"+d+"元");			}			else 				message4.setText("对不起!你的余额不足,取出失败!");			return;		}		if(e.getSource() == moneyBtn[4]){			double amount = 500.0;			if((findUser(name, password)).getAccount().withdraw(amount)){				double d = (findUser(name, password).getAccount().getBalance());				message4.setText("您成功地取出 500.0元,现在的余额为:"+d+"元");			}			else 				message4.setText("对不起!你的余额不足,取出失败!");			return;		}		//如果是返回按钮就返回到执行界面		if(e.getSource() == returnBtn4){			loadLand(1);			return;		}	}	public void go(){		frame.setVisible(true);	} 	/*public static void main(String[] args){		(new Land()).go();	}*/}

⌨️ 快捷键说明

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