Java+Swing实现自助取款机ATM系统-TXT存储数据
- 一、系统介绍
- 1.系统功能
- 2.环境配置
- 3.工程截图
- 二、系统展示
- 1.登录页
- 1.1登录成功
- 2.取款
- 2.1取款成功
- 3.存款
- 3.1 存款成功
- 4.转账
- 5.余额查询
- 6.退出系统
- 三、部分代码
- AccountDao.java
- LoginFrame.java
- Account.java
- 四、其他
- 获取源码
一、系统介绍
1.系统功能
1.登录系统
2.取款
3.存款
4.转账
5.余额查询
6.退出系统
2.环境配置
JDK版本:1.8
存储数据形式:TXT存储数据
3.工程截图
二、系统展示
1.登录页
账号密码都是1
1.1登录成功
2.取款
2.1取款成功
3.存款
3.1 存款成功
4.转账
5.余额查询
6.退出系统
三、部分代码
AccountDao.java
package cn.com.cdp.dao;
import java.util.List;
import cn.com.cdp.model.Account;
public class AccountDao {
public Account accountDao(int accountNo) {
return findAccByNo(accountNo);
}
// 如果用户找不到,返回false
public boolean accountDaoForUI(int accountNo) {
if (findAccByNo(accountNo) != null)
return true;
else
return false;
}
// 根据账户查询用户,并返回一个Account对象
public Account findAccByNo(int accountNo) {
AccountIO aio=new AccountIO();
List<Account> list= aio.queryAccountAll();
Account account=null;
for(int i=0;i<list.size();i++) {
if(accountNo == list.get(i).getAccountNo()) {
account=list.get(i);
}
}
// 返回用户对象
return account;
}
}
LoginFrame.java
package cn.com.cdp.view;
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.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import cn.com.cdp.model.Account;
import cn.com.cdp.dao.AccountDao;
//登录窗口
public class LoginFrame extends JFrame {
// 主面板
private JPanel p;
// 标签
private JLabel lblName, lblPwd;
// 用户名,文本框
private JTextField txtAccount;
// 密码,密码框
private JPasswordField txtPwd;
// 确认、取消和注册,按钮
private JButton btnOk, btnCancle, btnRegist;
// 登录用户
private static Account account;
public static Account getAccount() {
return account;
}
public static void setAccount(Account account) {
LoginFrame.account = account;
}
// 账户DAO类
private AccountDao accountDao;
// 构造方法
public LoginFrame() {
super("ATM自助存取款机");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 实例化用户业务类对象
accountDao = new AccountDao();
// 实例化组件
p = new JPanel();
// 使用null布局
p.setLayout(null);
lblName = new JLabel("账户:");
lblPwd = new JLabel("密码:");
txtAccount = new JTextField(20);
txtPwd = new JPasswordField(20);
txtPwd.setEchoChar('*');
btnOk = new JButton("登录");
btnOk.addActionListener(new LoginListener());
btnCancle = new JButton("重置");
btnCancle.addActionListener(new ResetListener());
lblName.setBounds(30, 40, 95, 25);
lblPwd.setBounds(30, 105, 83, 40);
txtAccount.setBounds(140, 40, 250, 35);
txtPwd.setBounds(140, 108, 250, 35);
btnOk.setBounds(75, 191, 75, 35);
btnCancle.setBounds(351, 191, 75, 35);
p.add(lblName);
p.add(txtAccount);
p.add(lblPwd);
p.add(txtPwd);
p.add(btnOk);
p.add(btnCancle);
// 主面板放入窗体中
getContentPane().add(p);
// 设置窗体大小和位置
this.setSize(488, 343);
// 设置窗口在屏幕中央
this.setLocationRelativeTo(null);
// 设置窗体初始可见
this.setVisible(true);
}
// 监听类,负责处理登录按钮
public class LoginListener implements ActionListener {
// 重写actionPerFormed()方法,事件处理逻辑
public void actionPerformed(ActionEvent e) {
System.out.println("==========="+txtAccount.getText());
if("".equals(txtAccount.getText())) {
JOptionPane.showMessageDialog(null, "账户不能为空", "错误提示", JOptionPane.WARNING_MESSAGE);
return;
}
// 根据账户查询用户
account = accountDao.findAccByNo(Integer.parseInt(txtAccount.getText().trim()));
// 判断用户是否存在
if ( null!= account) {
// 判断输入的密码是否正确
if (account.getPwd() == Integer.parseInt(new String(txtPwd.getPassword()))) {
// 登录成功,隐藏登录窗口
LoginFrame.this.setVisible(false);
// 显示主窗口
new MainFrame(account).setVisible(true);
} else {
// 输出提示信息
// System.out.println("密码错误!请重新输入!");
JOptionPane.showMessageDialog(null, "密码错误!请重新输入!", "错误提示", JOptionPane.ERROR_MESSAGE);
// 清空密码框
txtPwd.setText("");
}
} else {
// 输出提示信息
// System.out.println("该用户不存在,请先注册!");
JOptionPane.showMessageDialog(null, "该用户不存在!", "错误提示", JOptionPane.ERROR_MESSAGE);
}
}
}
// 监听类,负责处理重置按钮
public class ResetListener implements ActionListener {
// 重写actionPerFormed()方法,事件处理方法
@Override
public void actionPerformed(ActionEvent e) {
// 清空文本框
txtAccount.setText("");
txtPwd.setText("");
}
}
// 主程序,整个应用程序的入口
public static void main(String[] args) {
new LoginFrame();
}
}
Account.java
package cn.com.cdp.model;
public class Account {
private int accountNo;
private int pwd;
private String aName;
private double balance;
public Account() {
super();
// TODO Auto-generated constructor stub
}
public Account(int accountNo, int pwd, String aName, double balance) {
super();
this.accountNo = accountNo;
this.pwd = pwd;
this.aName = aName;
this.balance = balance;
}
public int getAccountNo() {
return accountNo;
}
public void setAccountNo(int accountNo) {
this.accountNo = accountNo;
}
public int getPwd() {
return pwd;
}
public void setPwd(int pwd) {
this.pwd = pwd;
}
public String getaName() {
return aName;
}
public void setaName(String aName) {
this.aName = aName;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
}
四、其他
获取源码
点击以下链接获取源码。
Java+Swing+Mysql自助存取款机系统
Java+Swing+mysql5实现学生成绩管理系统(带分页)
Java+Swing+Mysql实现超市商品管理系统源码
Java+Swing+Mysql实现通讯录管理系统源码
Java+Swing+Mysql实现图书管理系统源码