龙空技术网

Java+Swing实现自助取款机(ATM)系统-TXT存储数据

javacoco 127

前言:

现时兄弟们对“java银行卡存取款系统”可能比较关注,姐妹们都需要学习一些“java银行卡存取款系统”的相关文章。那么小编同时在网上汇集了一些有关“java银行卡存取款系统””的相关资讯,希望咱们能喜欢,咱们快快来学习一下吧!

Java+Swing实现自助取款机系统一、系统介绍

系统功能

1.登录系统

2.查询余额

3.取款

4.存款

5.转账

6.修改密码

7.退出系统

JDK版本:1.8

存储数据形式:TXT存储数据

二、系统展示1.登录页2.主页3.取款4.存款5.转账6.修改密码三、部分代码LoginJFrame.java

package atmJFrame.myJFrame;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;//登录界面继承MyJFramepublic class LoginJFrame extends MyJFrame {	public LoginJFrame() {		super("欢迎使用ATM机");		// 设置窗体可关闭		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		// 设置组件		init();		// 界面可视化		setVisible(true);	}	// 初始化界面	private void init() {		// 创建面板对象,并定义为空布局		JPanel jp = new JPanel(null);		// 添加标签		JLabel jl1 = new JLabel("账号:");		JLabel jl2 = new JLabel("密码:");		// 设置标签字体		jl1.setFont(FONT_SIZE_20);		jl2.setFont(FONT_SIZE_20);		// 设置标签在面板中的位置		jl1.setBounds(100, 100, 70, 70);		jl2.setBounds(100, 250, 70, 70);		// 添加文本框		JTextField jtf = new JTextField(20);		// 添加密码文本框		JPasswordField jpf = new JPasswordField(20);		// 设置文本框位置		jtf.setBounds(200, 115, 200, 40);		jpf.setBounds(200, 265, 200, 40);		// 添加按钮		JButton jb = new JButton("登录");		// 设置按钮文字大小		jb.setFont(FONT_SIZE_20);		// 设置按钮位置及大小		jb.setBounds(250, 400, 100, 50);		// 设置面板背景颜色		jp.setBackground(Color.YELLOW);		// 内部类进行事件处理		jb.addActionListener(new ActionListener() {			@Override			public void actionPerformed(ActionEvent e) {				// 获取输入的账号和密码				String userName = jtf.getText();				String userPassword = new String(jpf.getPassword());				// 验证是否正确				boolean aBoolean = atm.login(userName, userPassword);				if (aBoolean) {					// 登录成功					dispose();// 关闭登录界面					// 打开功能界面					new WorkingJFrame();				} else					showMessageDialog("账号或密码错误");// 调用父类弹窗方法			}		});		// 添加组件		jp.add(jl1);		jp.add(jtf);		jp.add(jl2);		jp.add(jpf);		jp.add(jb);		// 窗体添加面板		add(jp);	}	public static void main(String[] args) {		new LoginJFrame();// 先创建登录界面	}}
CentreJFrame.java
package atmJFrame.myJFrame;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.regex.Matcher;import java.util.regex.Pattern;//中间窗口,存钱、取钱、转账、修改密码界面的父类public class CentreJFrame extends MyJFrame {	// 空布局面板,自己设置组件位置及大小	protected JPanel jp = new JPanel(null);	// 输入金额标签	protected JLabel jl = new JLabel("请输入金额:");	// 输入金额文件框	protected JTextField jtf = new JTextField(20);	// 确认、取消按钮	protected JButton jb1 = new JButton("确认");	protected JButton jb2 = new JButton("取消");	// 转账时转账账号标签	protected JLabel jLabel = new JLabel("请输入转账账号:");	// 转账时转账账号文本框	protected JTextField jTextField = new JTextField(20);	// 修改密码时新密码标签	protected JLabel jLabelCP = new JLabel("请输入新密码(只能为数字):");	// 修改密码时新密码文本框	protected JTextField jTextFieldCP = new JTextField(20);	// 提醒用户输入金额为100的倍数	private JLabel jle = new JLabel("( 提示:只能输入100的倍数 )");	public CentreJFrame(String str) {		super(str);		// 判断要进行的操作		if (str.equals("转账"))			init1();		else if (str.equals("修改密码"))			init2();		else			init();		one();// 最后调用共有	}	// 取钱和取钱特有组件	private void init() {		// 输入金额标签,设置字体,位置及大小		jl.setFont(FONT_SIZE_25);		jl.setBounds(100, 100, 200, 100);		// 输入金额文本框		jtf.setBounds(300, 250, 200, 50);		// 添加输入金额标签和输入金额文本框		jp.add(jl);		jp.add(jtf);		setJLE();	}	// 转账特有组件	private void init1() {		init();		// 输入账户标签		jLabel.setFont(FONT_SIZE_25);		jLabel.setBounds(100, 10, 200, 40);		// 输入账户文本		jTextField.setBounds(300, 80, 200, 50);		// 添加输入账户标签和输入账户文本		jp.add(jLabel);		jp.add(jTextField);	}	// 修改密码特有组件	private void init2() {		// 输入新密码标签		jLabelCP.setFont(FONT_SIZE_25);		jLabelCP.setBounds(50, 100, 400, 70);		// 输入新密码文本框		jTextFieldCP.setBounds(300, 215, 200, 40);		// 添加输入新密码标签和输入新密码文本框		jp.add(jLabelCP);		jp.add(jTextFieldCP);	}	// 共有组件及操作	private void one() {		// 按钮设置		jb1.setFont(FONT_SIZE_20);		jb2.setFont(FONT_SIZE_20);		jb1.setBounds(300, 350, 100, 50);		jb2.setBounds(450, 350, 100, 50);		jp.add(jb1);		jp.add(jb2);		jp.setBackground(Color.GREEN);		jb1.addActionListener(listener);		jb2.addActionListener(listener);		// 添加到窗体		add(jp);		setVisible(true);	}	// 设置提示	private void setJLE() {		jle.setFont(FONT_SIZE_10);		jle.setBounds(100, 180, 300, 50);		jp.add(jle);	}	// 创建监听器	private ActionListener listener = new ActionListener() {		@Override		public void actionPerformed(ActionEvent e) {// 按钮被点击后			String actionCommand = e.getActionCommand();// 获取按钮上的字			switch (actionCommand) {			case "确认":				change();				break;			case "取消":				new WorkingJFrame();// 创建功能界面				dispose();// 关闭此界面				break;			}		}	};	// 点击确认按钮执行的操作,子类重写覆盖实现各自功能	protected void change() {	}	// 正则表达式判断输入是否为数字	protected boolean isNumber(String str) {		Pattern pattern = Pattern.compile("[0-9]*");		Matcher isNum = pattern.matcher(str);		if (!isNum.matches())			return false;		return true;	}}
CunMoneyJFrame.java
package atmJFrame.myJFrame;//存钱界面public class CunMoneyJFrame extends CentreJFrame {	public CunMoneyJFrame() {		super("存钱");	}	protected void change() {		String s = jtf.getText();		if (isNumber(s)) {			Double money = Double.parseDouble(s);			boolean b = atm.saveMoney(money);			if (b)				showMessageDialog("您的钱钱已存入\n您的账户余额为:" + atm.getMoney1());			else				showMessageDialog("您输入有误");		} else			showMessageDialog("您输入有误");		jtf.setText("");	}}
GiveMoneyJFrame.java
package atmJFrame.myJFrame;//转账界面public class GiveMoneyJFrame extends CentreJFrame {	public GiveMoneyJFrame() {		super("转账");	}	protected void change() {		String s = jTextField.getText();		boolean b = atm.anotherUser(s);		if (b) {			// 获取输入金额			String s1 = jtf.getText();			if (isNumber(s1)) {// 如果输入是数字				Double money = Double.parseDouble(s1);				atm.giveMoney(money);				showMessageDialog("钱已转入\n您的账户余额为:" + atm.getMoney1());			} else				showMessageDialog("您输入有误");		} else			showMessageDialog("您输入有误");		new WorkingJFrame();// 创建功能界面		dispose();// 关闭此界面	}}
QuMoneyJFrame.java
package atmJFrame.myJFrame;//取钱界面public class QuMoneyJFrame extends CentreJFrame {	public QuMoneyJFrame() {		super("取钱");	}	protected void change() {		String s = jtf.getText();		if (isNumber(s)) {			Double money = Double.parseDouble(s);			boolean b = atm.quMoney(money);			if (b) {				showMessageDialog("请收好您的钱\n您的账户余额为:" + atm.getMoney1());			} else				showMessageDialog("您输入有误");		} else			showMessageDialog("您输入有误");		jtf.setText("");	}}

标签: #java银行卡存取款系统 #java编写银行取款系统 #java实现银行存取款 #java存款取款 #java写银行存取款