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

@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(“”);

}

}

四、其他

===================================================================

1.其他系统实现


JavaWeb系统系列实现

Java+JSP实现图书管理系统

Java+JSP实现学生信息管理系统

Java+Servlet+JSP实现学生成绩管理系统

Java+Servlet+JSP实现宠物诊所管理系统

Java+SSM+Easyui实现网上考试系统

Java+Springboot+H-ui实现营销管理系统

Java+Springboot+Mybatis+Bootstrap实现网上商城系统

JavaSwing系统系列实现

Java+Swing实现医院管理系统

Java+Swing实现仓库管理系统

Java+Swing实现学生信息管理系统

Java+Swing实现学生宿舍管理系统

Java+Swing实现学生选课管理系统

Java+Swing实现电子相册管理系统

Java+Swing实现图书管理系统

Java+Swing实现斗地主游戏

Java+Swing实现宠物商店管理系统-TXT存储信息

Java+Swing实现学生成绩管理系统

Java+Swing实现企业人事管理系统

Java+Swing实现学校教材管理系统

Java+Swing实现学校教务管理系统

Java+Swing实现超市管理系统-TXT存储信息

Java+Swing实现考试管理系统

2.获取源码

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
2.获取源码

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-6lN09tVl-1715348313737)]

[外链图片转存中…(img-vPfQSRsU-1715348313737)]

[外链图片转存中…(img-preelXAo-1715348313738)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 30
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值