JAVA实训项目:银行网银系统管理平台(含源码)
文章目录
前言
大一最后的实训项目,也是算大一的结束的标志。
一、项目功能需求描述以及相关技术的应用
本网银系统管理平台主要任务是对用户办理储蓄业务(如存款,取款等)和对个人账户下的银行卡进行管理。
对于用户,主要实现的功能有个人信息的管理基本的增改查(包括注册,登录,修改密码,个人信息查看)以及用户之间进行余额的转账。
1.登陆
2.注册
3.首页
4.个人信息显示
5.修改密码
6.充值
7.提现
8.转账
9.银行卡管理
(1)查看银行卡
(2)添加银行卡
对于银行管理员,主要实现的功能有:查看所有的用户信息。
1.登陆
2.管理用户
(1)查看用户信息
(2)增加()
3.管理银行卡
相关技术应用
实体类的创建:
继承,封装,多态 以及 构造方法(getter setter)的快捷生成键位
项目分层(MVC机制):
MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。
创建以下5个层
- com.pdsu.bankdemo.entity 实体类层 放置实体类
- com.pdsu.bankdemo.dao dao层 操作数据
- com.pdsu.bankdemo.service 服务层 处理业务
- com.pdsu.bankdemo.controller 控制层 控制操作
- com.pdsu.bankdemo.view 视图层 展示信息
- com.pdsu.bankdemo.test 测试
可视化界面的设计:
对于每一个功能的可视化界面设计,主要运用GUI和继承JAVA Swing中的JFrame,JPanel,JDialog,JTable以及JTextField,JButton,JLabel等组件来实现对文本框,按钮以及文本标签的可视化。
监听机制的实现:
对于窗体中各个组件如按钮,文本框,下拉列表的事件处理,使用了事件处理机制当中的鼠标事件处理(MouseListener)。
数据的存储和输入输出:
对于各个实体类的数据中,使用输入输出流(IO)中的List进行对各个实体类中数据变量的存储,输入输出,修改。
二、设计过程
系统流程图
1.登陆页面
2.注册页面
3.首页
4.个人信息展示
密码这部分不用展示
5.修改密码
6.添加银行卡
7.银行卡显示
8.充值
9.提现
10.转账
11.用户管理
三、源码展示
1.实体类创建
User
package com.pdsu.bankdemo.entity;
import java.io.Serializable;
public class User implements Serializable {//Serializable序列化接口
private String Tel;//手机号账户
private String Pwd;//密码
private String name;//用户名
private String RelName;//真实姓名
private String cardNum;//银行卡号
private String email;//邮箱
private double money;//余额
public User(String tel, String pwd, String name, String relName, String cardNum, String email, double money) {
Tel = tel;
Pwd = pwd;
this.name = name;
RelName = relName;
this.cardNum = cardNum;
this.email = email;
this.money = money;
}
public String getTel() {
return Tel;
}
public void setTel(String tel) {
Tel = tel;
}
public String getPwd() {
return Pwd;
}
public void setPwd(String pwd) {
Pwd = pwd;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRelName() {
return RelName;
}
public void setRelName(String relName) {
RelName = relName;
}
public String getCardNum() {
return cardNum;
}
public void setCardNum(String cardNum) {
this.cardNum = cardNum;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
@Override
public String toString() {
return "User{" +
"Tel='" + Tel + '\'' +
", Pwd='" + Pwd + '\'' +
", name='" + name + '\'' +
", RelName='" + RelName + '\'' +
", cardNum='" + cardNum + '\'' +
", email='" + email + '\'' +
", money=" + money +
'}';
}
}
Banks
package com.pdsu.bankdemo.entity;
import java.io.Serializable;
public class Banks implements Serializable {
private String bankNum;//银行卡号
private double money;//余额
private String BankName;//银行
private String tel;//手机号
public Banks(String bankNum, double money, String bankName, String tel) {
this.bankNum = bankNum;
this.money = money;
BankName = bankName;
this.tel = tel;
}
public String getBankNum() {
return bankNum;
}
public void setBankNum(String bankNum) {
this.bankNum = bankNum;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
public String getBankName() {
return BankName;
}
public void setBankName(String bankName) {
BankName = bankName;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
@Override
public String toString() {
return "Banks{" +
"bankNum='" + bankNum + '\'' +
", money=" + money +
", BankName='" + BankName + '\'' +
", tel='" + tel + '\'' +
'}';
}
}
Admin
package com.pdsu.bankdemo.entity;
import java.io.Serializable;
public class Admin implements Serializable {
private String Account;//管理员账号
private String Pwd;//管理员密码
public Admin(String account, String pwd) {
Account = account;
Pwd = pwd;
}
public String getAccount() {
return Account;
}
public void setAccount(String account) {
Account = account;
}
public String getPwd() {
return Pwd;
}
public void setPwd(String pwd) {
Pwd = pwd;
}
@Override
public String toString() {
return "Admin{" +
"Account='" + Account + '\'' +
", Pwd='" + Pwd + '\'' +
'}';
}
}
2.Dao层
UserDao
package com.pdsu.bankdemo.dao;
import com.pdsu.bankdemo.entity.User;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class UserDao<main> {
/**
* 读取数据
*/
public List<User> read() {
List<User> list = new ArrayList<>();
try {
FileInputStream file = new FileInputStream("User.data");
ObjectInputStream in = new ObjectInputStream(file);
list = (List<User>) in.readObject();
in.close();
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
/**
* 写入数据
*/
public boolean write(List<User> list) {
try {
FileOutputStream file = new FileOutputStream("User.data");
ObjectOutputStream out = new ObjectOutputStream(file);
out.writeObject(list);
out.close();
return true;//写入成功
} catch (Exception e) {
e.printStackTrace();
return false;//写入失败
}
}
}
BanksDao
package com.pdsu.bankdemo.dao;
import com.pdsu.bankdemo.entity.Banks;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class BanksDao {
/**
* 读取数据
*/
public List<Banks> read() {
List<Banks> list = new ArrayList<>();
try {
FileInputStream file = new FileInputStream("Banks.data");
ObjectInputStream in = new ObjectInputStream(file);
list = (List<Banks>) in.readObject();
in.close();
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
/**
* 写入数据
*/
public boolean write(List<Banks> list) {
try {
FileOutputStream file = new FileOutputStream("Banks.data");
ObjectOutputStream out = new ObjectOutputStream(file);
out.writeObject(list);
out.close();
return true;//写入成功
} catch (Exception e) {
e.printStackTrace();
return false;//写入失败
}
}
}
AdminDao
package com.pdsu.bankdemo.dao;
import com.pdsu.bankdemo.entity.Admin;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class AdminDao {
/**
* 读取数据
*/
public List<Admin> read() {
List<Admin> list = new ArrayList<>();
try {
FileInputStream file = new FileInputStream("Admin.data");
ObjectInputStream in = new ObjectInputStream(file);
list = (List<Admin>) in.readObject();
in.close();
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
/**
* 写入数据
*/
public boolean write(List<Admin> list) {
try {
FileOutputStream file = new FileOutputStream("Admin.data");
ObjectOutputStream out = new ObjectOutputStream(file);
out.writeObject(list);
out.close();
return true;//写入成功
} catch (Exception e) {
e.printStackTrace();
return false;//写入失败
}
}
public static void main(String[] args) {
List<Admin> list = new ArrayList<>();
list.add(new Admin("admin", "admin"));
AdminDao dao = new AdminDao();
dao.write(list);
System.out.println("写入成功");
List<Admin> lists = dao.read();
for (Admin ad : lists) {
System.out.println(ad);
}
}
}
3.Controller
UserController
package com.pdsu.bankdemo.controller;
import com.pdsu.bankdemo.entity.User;
import com.pdsu.bankdemo.service.UserService;
import com.pdsu.bankdemo.service.impl.UserServiceImpl;
public class UserController {
//controller -->service
private UserService userService = new UserServiceImpl();
/*** 登录*/
public User userLogin(String tel, String Pwd) {
return userService.findUserByTelandPwd(tel, Pwd);
}
/**
* 注册
*/
public boolean addUser(String tel, String pwd, String name, String relName, String cardNum, String email) {
User u = new User(tel, pwd, name, relName, cardNum, email, 0);
return userService.addUser(u);
}
/**
* 验证手机号是否存在
*/
public boolean isExistTel(String tel) {
return userService.isExistTel(tel);
}
/**
* 验证邮箱是否存在
*/
public boolean isExistEmail(String email) {
return userService.isExistEmail(email);
}
/**修改密码*/
public boolean updatePwd(String tel,String olPwd,String pwd){
User u = userService.findUserByTelandPwd(tel,olPwd);
if(u==null){
return false;
}
return userService.updatePwd(tel, pwd);
}
/**
* 账户加钱 -- 充值
*/
public boolean AddUserMoney(String tel, double money) {
return userService.AddUserMoney(tel, money);
}
/**
* 账户扣钱 -- 提现
*/
public boolean DeleteUserMoney(String tel, double money) {
return userService.DeleteUserMoney(tel, money);
}
}
BanksController
package com.pdsu.bankdemo.controller;
import com.pdsu.bankdemo.entity.Banks;
import com.pdsu.bankdemo.service.BanksService;
import com.pdsu.bankdemo.service.impl.BanksServiceImpl;
import java.util.List;
public class BanksController {
private BanksService banksService = new BanksServiceImpl();
/**
* 添加
*/
public boolean addBanks(Banks banks) {
return banksService.addBanks(banks);
}
/**
* 根据手机号查看所有的银行卡
*/
public List<Banks> showBanksByTel(String tel) {
return banksService.showBanksByTel(tel);
}
/**
* 银行扣钱--充值
*/
public boolean DeleteBankMoney(String banksNum, double money) {
return banksService.DeleteBankMoney(banksNum, money);
}
/**
* 银行加钱--提现
*/
public boolean AddBankMoney(String banksNum, double money) {
return banksService.AddBankMoney(banksNum, money);
}
}
UserCloserUtil
package com.pdsu.bankdemo.controller;
import com.pdsu.bankdemo.entity.User;
import javax.swing.*;
public class UserCloserUtil {
/**
* // * 传对象
* //
*/
private static User user1;
public static void setChange(User user) {
user1 = user;
}
public static User getChange() {
return user1;
}
/**
* 关闭主程序
*/
private static JFrame frame1 = new JFrame();
public static void setClose(JFrame frame) {
frame1 = frame;
}
public static void Close() {
frame1.dispose();
}
}
4.Service
BanksService接口
package com.pdsu.bankdemo.service;
import com.pdsu.bankdemo.entity.Banks;
import java.util.List;
public interface BanksService {
/**
* 添加
*/
public boolean addBanks(Banks banks);
/**
* 根据手机号查看所有的银行卡
*/
public List<Banks> showBanksByTel(String tel);
/**
* 扣钱--充值
*/
public boolean DeleteBankMoney(String banksNum, double money);
/**
* 加钱--提现
*/
public boolean AddBankMoney(String banksNum, double money);
}
UserService接口
package com.pdsu.bankdemo.service;
import com.pdsu.bankdemo.entity.User;
/**
* 用户服务层
*/
public interface UserService {
/**
* 根据手机号和密码密码查找用户
*/
public User findUserByTelandPwd(String tel, String Pwd);
/**
* 添加用户
*/
public boolean addUser(User user);
/**
* 验证手机号是否存在
*/
public boolean isExistTel(String tel);
/**
* 验证邮箱是否存在
*/
public boolean isExistEmail(String email);
/**修改密码*/
public boolean updatePwd(String tel,String pwd);
/**
* 账户加钱 -- 存款
*/
public boolean AddUserMoney(String tel, double money);
/**
* 账户扣钱 -- 提现
*/
public boolean DeleteUserMoney(String tel, double money);
}
UserServiceImpl
package com.pdsu.bankdemo.service.impl;
import com.pdsu.bankdemo.controller.UserCloserUtil;
import com.pdsu.bankdemo.dao.UserDao;
import com.pdsu.bankdemo.entity.Banks;
import com.pdsu.bankdemo.entity.User;
import com.pdsu.bankdemo.service.UserService;
import java.util.List;
public class UserServiceImpl implements UserService {
//service _>DAO
private UserDao dao = new UserDao();
@Override
public User findUserByTelandPwd(String tel, String Pwd) {
List<User> list = dao.read();//读取数据
for (User u : list) {
String tels = u.getTel();
String Pwds = u.getPwd();
if (tels.equals(tel) && Pwds.equals(Pwd)) {
System.out.println("登陆成功");
return u;
}
}
return null;//失败
}
@Override
public boolean addUser(User user) {
List<User> list = dao.read();//读取数据
list.add(user);
return dao.write(list);
}
@Override
public boolean isExistTel(String tel) {
List<User> list = dao.read();//读取数据
for (User u : list) {
if (u.getTel().equals(tel)) {
return true;//手机号相同
}
}
return false;
}
@Override
public boolean isExistEmail(String email) {
List<User> list = dao.read();//读取数据
for (User u : list) {
if (u.getEmail().equals(email)) {
return true;//邮箱号相同
}
}
return false;
}
@Override
public boolean updatePwd(String tel, String pwd) {
List<User> list = dao.read();//读取数据
for (User u:list){
String uTel = u.getTel();
if(uTel.equals(tel)){//比较手机号是否相同
u.setPwd(pwd);//修改
break;
}
}
return dao.write(list);
}
/**
* 充值 -- 用户加钱
*
* @param tel
* @param money
* @return
*/
@Override
public boolean AddUserMoney(String tel, double money) {
List<User> list = dao.read();
for (User u : list) {
if (u.getTel().equals(tel)) {
UserCloserUtil.setChange(u);
u.setMoney(u.getMoney() + money);
}
}
return dao.write(list);
}
/**
* 提现--用户扣钱
*
* @param
* @param money
* @return
*/
@Override
public boolean DeleteUserMoney(String tel, double money) {
List<User> list = dao.read();
for (User u : list) {
if (tel.equals(u.getTel())) {
UserCloserUtil.setChange(u);
double mo = u.getMoney();
if (mo - money < 0) //余额不足
{
return false;
} else {
u.setMoney(mo - money);
}
}
}
return dao.write(list);
}
}
BanksServiceImpl
package com.pdsu.bankdemo.service.impl;
import com.pdsu.bankdemo.dao.BanksDao;
import com.pdsu.bankdemo.dao.UserDao;
import com.pdsu.bankdemo.entity.Banks;
import com.pdsu.bankdemo.service.BanksService;
import java.util.ArrayList;
import java.util.List;
public class BanksServiceImpl implements BanksService {
private BanksDao dao = new BanksDao();
private UserDao dao1 = new UserDao();
@Override
public boolean addBanks(Banks banks) {
List<Banks> list = dao.read();
list.add(banks);
return dao.write(list);
}
@Override
public List<Banks> showBanksByTel(String tel) {
List<Banks> list = dao.read();
List<Banks> ulist = new ArrayList<>();
for (Banks b : list) {
if (b.getTel().equals(tel)) {
ulist.add(b);
}
}
return ulist;
}
/**
* 充值--银行扣钱
*
* @return
*/
@Override
public boolean DeleteBankMoney(String banksNum, double money) {
List<Banks> list = dao.read();
for (Banks b : list) {
if (banksNum.equals(b.getBankNum())) {
double mo = b.getMoney();
if (mo - money < 0) //余额不足
{
return false;
} else {
b.setMoney(mo - money);
}
}
}
return dao.write(list);
}
/**
* 提现--银行加钱
*/
@Override
public boolean AddBankMoney(String banksNum, double money) {
List<Banks> list = dao.read();
for (Banks b : list) {
if (b.getBankNum().equals(banksNum)) {
b.setMoney(b.getMoney() + money);
}
}
return dao.write(list);
}
}
5.View
UserLoginView
package com.pdsu.bankdemo.view;
import com.pdsu.bankdemo.controller.UserController;
import com.pdsu.bankdemo.entity.User;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
/**
* 用户登录界面
*/
public class UserLoginView extends JFrame implements MouseListener {
private JPanel jp;//大的组件
private JLabel top;//顶部
private JPanel bom;//底部
private JLabel nameJL, pwdJL;//
private JTextField nameJF;//用户名框
private JPasswordField pwdJF;//密码框
private JButton login, reg;//按钮
public UserLoginView() {
//设置大组件
jp = new JPanel();
jp.setLayout(new BorderLayout());//边框布局
//顶部
top = new JLabel();
ImageIcon icon = new ImageIcon("img/logo.png");
icon.setImage(icon.getImage().getScaledInstance(300, 50, Image.SCALE_DEFAULT));
top.setIcon(icon);
top.setBorder(new EmptyBorder(20, 70, 30, 20));
jp.add(top, BorderLayout.NORTH);
//底部
bom = new JPanel();
bom.setLayout(new GridLayout(3, 2, 20, 20));//距离上下左右的距离 表格// 布局
bom.setBorder(new EmptyBorder(0, 40, 30, 40));
//输入框
nameJL = new JLabel("手机号:", JLabel.RIGHT);
nameJL.setIcon((new ImageIcon("img/username_icon.png")));
nameJL.setBorder(new EmptyBorder(0, 0, 0, 20));
nameJF = new JTextField(20);
pwdJL = new JLabel("密 码:", JLabel.RIGHT);
pwdJL.setBorder(new EmptyBorder(0, 0, 0, 20));
pwdJL.setIcon((new ImageIcon("img/password_icon.png")));
pwdJF = new JPasswordField(20);
//登陆注册按钮设置
login = new JButton("登录");
login.setName("login");
login.addMouseListener(this);//添加监听事件
reg = new JButton("注册");
reg.setName("reg");
reg.addMouseListener(this);//添加监听事件
bom.add(nameJL);
bom.add(nameJF);
bom.add(pwdJL);
bom.add(pwdJF);
bom.add(login);
bom.add(reg);
jp.add(bom, BorderLayout.CENTER);
this.add(jp);
this.setTitle("欢迎使用Richard转账管理系统!");//标题
this.setSize(450, 300);//大小
this.setLocationRelativeTo(null);//居中
this.setResizable(false);//不允许改变窗口的大小
this.setVisible(true);//显示
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//可关闭
}
@Override
public void mouseClicked(MouseEvent e) {
//发生事件的组件名称
String str = e.getComponent().getName();
if (str.equals("login")) {
String tel = nameJF.getText();
String pwd = new String(pwdJF.getPassword());
if (tel.equals("")) {
JOptionPane.showMessageDialog(null, "手机号不能为空");
} else if (pwd.equals("")) {
JOptionPane.showMessageDialog(null, "密码不能为空");
} else {
UserController usersController = new UserController();
User user = usersController.userLogin(tel, pwd);
if (user == null) {
JOptionPane.showMessageDialog(null, "登录失败");
} else {
System.out.println("成功");
dispose(); //隐藏登录页面
MainView mainView = new MainView(user);
}
}
} else {
AddUserView ad = new AddUserView(this);
}
}
@Override
public void mousePressed(MouseEvent e) {
// TODO 自动生成的方法存根
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO 自动生成的方法存根
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO 自动生成的方法存根
}
@Override
public void mouseExited(MouseEvent e) {
// TODO 自动生成的方法存根
}
}
AddUserView
package com.pdsu.bankdemo.view;
import com.pdsu.bankdemo.controller.UserController;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
/**
* 用户注册
*/
public class AddUserView extends JDialog implements MouseListener {
private JPanel jp;//顶部组件
private JLabel telJL, pwdJL, nameJL, relNameJL, carNumJL, emailJL;//左侧提示
private JTextField telJF, nameJF, relNameJF, carNumJF, emailJF;//文本
private JPasswordField pwdJF;//密码框
private JButton sub, clo;//按钮
public AddUserView(Frame owner) {
super(owner);
jp = new JPanel();
jp.setBackground(Color.GRAY);
jp.setLayout(new GridLayout(7, 2, 20, 20));
jp.setBorder(new EmptyBorder(20, 20, 20, 20));
EmptyBorder jbo = new EmptyBorder(0, 20, 0, 0);
EmptyBorder fbo = new EmptyBorder(0, 0, 0, 20);
//手机号
telJL = new JLabel("手机号:", JLabel.LEFT);
telJL.setIcon(new ImageIcon("img/phone_icon.png"));
telJL.setBorder(jbo);
telJF = new JTextField(20);
telJF.setBorder(fbo);
jp.add(telJL);
jp.add(telJF);
//密码
pwdJL = new JLabel("密码:", JLabel.LEFT);
pwdJL.setIcon(new ImageIcon("img/password_icon.png"));
pwdJL.setBorder(jbo);
pwdJF = new JPasswordField(20);
pwdJF.setBorder(fbo);
jp.add(pwdJL);
jp.add(pwdJF);
//用户名
nameJL = new JLabel("昵称:", JLabel.LEFT);
nameJL.setIcon(new ImageIcon("img/name_icon.png"));
nameJL.setBorder(jbo);
nameJF = new JTextField(20);
nameJF.setBorder(fbo);
jp.add(nameJL);
jp.add(nameJF);
//真实姓名
relNameJL = new JLabel("真实姓名:", JLabel.LEFT);
relNameJL.setIcon(new ImageIcon("img/username_icon.png"));
relNameJL.setBorder(jbo);
relNameJF = new JTextField(20);
relNameJF.setBorder(fbo);
jp.add(relNameJL);
jp.add(relNameJF);
//身份证号
carNumJL = new JLabel("身份证号:", JLabel.LEFT);
carNumJL.setIcon(new ImageIcon("img/idc_icon.png"));
carNumJL.setBorder(jbo);
carNumJF = new JTextField(20);
carNumJF.setBorder(fbo);
jp.add(carNumJL);
jp.add(carNumJF);
//邮箱
emailJL = new JLabel("邮箱:", JLabel.LEFT);
emailJL.setIcon(new ImageIcon("img/msg_icon.png"));
emailJL.setBorder(jbo);
emailJF = new JTextField(20);
emailJF.setBorder(fbo);
jp.add(emailJL);
jp.add(emailJF);
//提交按钮
sub = new JButton("提交");
sub.setName("sub");
sub.addMouseListener(this);
jp.add(sub);
//取消按钮
clo = new JButton("取消");
clo.setName("clo");
clo.addMouseListener(this);
jp.add(clo);
this.add(jp);
this.setTitle("Richard转账管理系统-->用户注册");//标题
this.setSize(400, 500);//大小
this.setLocationRelativeTo(null);//居中
this.setResizable(false);//不允许改变窗口的大小
this.setVisible(true);//显示
this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
}
@Override
public void mouseClicked(MouseEvent e) {
String str = e.getComponent().getName();
switch ((str)) {
case "sub":
String tel = telJF.getText();
String pwd = new String(pwdJF.getPassword());
String name = nameJF.getText();
String relName = relNameJF.getText();
String carNum = carNumJF.getText();
String email = emailJF.getText();
if (tel.equals("")) {
JOptionPane.showMessageDialog(null, "手机号不能为空");
clear();
break;
}
if (pwd.equals("")) {
JOptionPane.showMessageDialog(null, "密码不能为空");
clear();
break;
}
if (name.equals("")) {
JOptionPane.showMessageDialog(null, "昵称不能为空");
clear();
break;
}
if (relName.equals("")) {
JOptionPane.showMessageDialog(null, "真实姓名不能为空");
clear();
break;
}
if (carNum.equals("")) {
JOptionPane.showMessageDialog(null, "身份证号不能为空");
clear();
break;
}
if (email.equals("")) {
JOptionPane.showMessageDialog(null, "邮箱不能为空");
clear();
break;
}
UserController con = new UserController();
if (con.isExistTel(tel)) {
JOptionPane.showMessageDialog(null, "手机号已注册");
clear();
break;
}
if (con.isExistEmail(email)) {
JOptionPane.showMessageDialog(null, "邮箱已注册");
clear();
break;
}
boolean flag = con.addUser(tel, pwd, name, relName, carNum, email);
if (flag) {
JOptionPane.showMessageDialog(null, "注册成功");
dispose();
} else {
JOptionPane.showMessageDialog(null, "注册失败!");
clear();
}
break;
case "clo":
dispose();
break;
}
}
//private JTextField telJF, nameJF, relNameJF, carNumJF, emailJF;//文本
/**
* 清空
*/
private void clear() {
telJF.setText("");
nameJF.setText("");
relNameJF.setText("");
carNumJF.setText("");
emailJF.setText("");
pwdJF.setText("");
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
}
MainView
package com.pdsu.bankdemo.view;
import com.pdsu.bankdemo.controller.BanksController;
import com.pdsu.bankdemo.controller.UserCloserUtil;
import com.pdsu.bankdemo.dao.UserDao;
import com.pdsu.bankdemo.entity.Banks;
import com.pdsu.bankdemo.entity.User;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.List;
/**
*
*/
public class MainView extends JFrame implements MouseListener {
private JPanel jpJP, topJP, leftJP, conJP, indexJP;
private JLabel logoJL, WelJL, indexJL;
//首页 个人主页 改密 银行卡 存钱 取钱 转账 用户管理
private JButton indexJB, showUserJB, pwdJB, banksJB, addMoneyJB, deleteMoneyJB, moveMoneyJB, updateUserJB, addbanksJB;
private User user;
public MainView(User user) {
this.user = user;
jpJP = new JPanel();
jpJP.setLayout(new BorderLayout());//边框布局
//顶部
topJP = new JPanel();
logoJL = new JLabel();
ImageIcon lo = new ImageIcon("img/bank.png");
lo.setImage(lo.getImage().getScaledInstance(100, 100, Image.SCALE_DEFAULT));
logoJL.setIcon(lo);
WelJL = new JLabel("欢迎用户:" + user.getName());
WelJL.setFont(new Font("宋体", 1, 20));
topJP.add(logoJL);
topJP.add(WelJL);
jpJP.add(topJP, BorderLayout.NORTH);
//左侧导航
leftJP = new JPanel();
leftJP.setLayout(new GridLayout(9, 1, 20, 20));
EmptyBorder jb = new EmptyBorder(10, 0, 10, 20);
//首页
indexJB = new JButton("首页");
indexJB.setName("indexJB");
indexJB.setBorder(jb);
indexJB.addMouseListener(this);
leftJP.add(indexJB);
//个人信息
showUserJB = new JButton("个人信息");
showUserJB.setName("showUserJB");
showUserJB.setBorder(jb);
showUserJB.addMouseListener(this);
leftJP.add(showUserJB);
//修改密码
pwdJB = new JButton("修改密码");
pwdJB.setName("pwdJB");
pwdJB.setBorder(jb);
pwdJB.addMouseListener(this);
leftJP.add(pwdJB);
//添加银行卡
addbanksJB = new JButton("添加银行卡");
addbanksJB.setName("addbanksJB");
addbanksJB.setBorder(jb);
addbanksJB.addMouseListener(this);
leftJP.add(addbanksJB);
//银行卡
banksJB = new JButton("银行卡");
banksJB.setName("banksJB");
banksJB.setBorder(jb);
banksJB.addMouseListener(this);
leftJP.add(banksJB);
//充值
addMoneyJB = new JButton("充值");
addMoneyJB.setName("addMoneyJB");
addMoneyJB.setBorder(jb);
addMoneyJB.addMouseListener(this);
leftJP.add(addMoneyJB);
//提现
deleteMoneyJB = new JButton("提现");
deleteMoneyJB.setName("deleteMoneyJB");
deleteMoneyJB.setBorder(jb);
deleteMoneyJB.addMouseListener(this);
leftJP.add(deleteMoneyJB);
//转账
moveMoneyJB = new JButton("转账");
moveMoneyJB.setName("moveMoneyJB");
moveMoneyJB.setBorder(jb);
moveMoneyJB.addMouseListener(this);
leftJP.add(moveMoneyJB);
//用户管理
updateUserJB = new JButton("用户管理");
updateUserJB.setName("updateUserJB");
updateUserJB.setBorder(jb);
updateUserJB.addMouseListener(this);
leftJP.add(updateUserJB);
jpJP.add(leftJP, BorderLayout.WEST);
conJP = new JPanel();
conJP.setBorder(new EmptyBorder(10, 10, 10, 0));
indexJP = new JPanel();
indexJP.setSize(500, 450);
indexJL = new JLabel();
ImageIcon icon = new ImageIcon("img/bg2.png");
icon.setImage(icon.getImage().getScaledInstance(500, 350, Image.SCALE_DEFAULT));
indexJL.setIcon(icon);
indexJP.add(indexJL);
conJP.add(indexJP);
jpJP.add(conJP);
this.add(jpJP);
this.setTitle("Richard转账管理系统!-->主页");//标题
this.setSize(700, 500);//大小
UserCloserUtil.setClose(this);
this.setLocationRelativeTo(null);//居中
this.setResizable(false);//不允许改变窗口的大小
this.setVisible(true);//显示
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//可关闭
}
/**
* 切换页面 需要的这种方法时直接调用
*/
public void updateView(JPanel jp) {
conJP.removeAll();
conJP.add(jp);
conJP.validate();
conJP.updateUI();
}
@Override
public void mouseClicked(MouseEvent e) {
String str = e.getComponent().getName();
switch (str) {
case "indexJB":
System.out.println("首页");
updateView(indexJP);
break;
case "showUserJB":
ShowUsersView showUsersView = new ShowUsersView(user);
updateView(showUsersView);
break;
case "pwdJB":
UpdatePasswordView updatePasswordView = new UpdatePasswordView(user);
updateView(updatePasswordView);
break;
case "addbanksJB":
System.out.println("添加银行卡");
AddBanksView addBanksView = new AddBanksView(user);
updateView(addBanksView);
break;
case "addMoneyJB":
BanksController banksController1 = new BanksController();
List<Banks> list1 = banksController1.showBanksByTel(user.getTel());
AddUserMoneyView addUserMoneyView = new AddUserMoneyView(user, list1);
updateView(addUserMoneyView);
break;
case "banksJB":
BanksController banksController = new BanksController();
List<Banks> list = banksController.showBanksByTel(user.getTel());
ShowBanksView showBanksView = new ShowBanksView(list);
updateView(showBanksView);
break;
case "deleteMoneyJB":
BanksController banksController2 = new BanksController();
List<Banks> list4 = banksController2.showBanksByTel(user.getTel());
DeleteUserMoneyView deleteUserMoneyView = new DeleteUserMoneyView(user, list4);
updateView(deleteUserMoneyView);
break;
case "moveMoneyJB":
TransToOtherView transToOtherView = new TransToOtherView(user);
updateView(transToOtherView);
System.out.println("转账");
break;
case "updateUserJB":
UserDao dao = new UserDao();
List<User> list3 = dao.read();
UserManageView userManageView = new UserManageView(list3);
updateView(userManageView);
break;
}
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
}
ShowUsersView
package com.pdsu.bankdemo.view;
import com.pdsu.bankdemo.entity.User;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.*;
public class ShowUsersView extends JPanel {
private JPanel top, bom;
private JLabel telJL, pwdJL, nameJL, relNameJL, carNumJL, emailJL, adMJL;//左侧提示
private JTextField telJF, nameJF, relNameJF, carNumJF, emailJF, adMJF;//文本
private JPasswordField pwdJF;//密码框
public ShowUsersView(User u) {
this.setLayout(new BorderLayout());
//上边
top = new JPanel();
JLabel topJL = new JLabel("个人信息展示");
topJL.setFont(new Font("宋体", 1, 20));
top.add(topJL);
this.add(top, BorderLayout.NORTH);
//下边
bom = new JPanel();
bom.setLayout(new GridLayout(7, 2, 20, 20));
EmptyBorder jbo = new EmptyBorder(0, 50, 0, 0);
EmptyBorder fbo = new EmptyBorder(0, 0, 0, 50);
//手机号
telJL = new JLabel("手机号:", JLabel.CENTER);
telJL.setIcon(new ImageIcon("img/phone_icon.png"));
telJL.setFont(new Font("宋体", 1, 15));
telJL.setBorder(jbo);
telJF = new JTextField(20);
telJF.setEditable(false);
telJF.setText(u.getTel());
telJF.setBorder(fbo);
bom.add(telJL);
bom.add(telJF);
//密码
pwdJL = new JLabel("密码:", JLabel.CENTER);
pwdJL.setIcon(new ImageIcon("img/password_icon.png"));
pwdJL.setFont(new Font("宋体", 1, 15));
pwdJL.setBorder(jbo);
pwdJF = new JPasswordField(20);
pwdJF.setEditable(false);
pwdJF.setBorder(fbo);
pwdJF.setText(u.getPwd());
bom.add(pwdJL);
bom.add(pwdJF);
//用户名
nameJL = new JLabel("昵称:", JLabel.CENTER);
nameJL.setIcon(new ImageIcon("img/name_icon.png"));
nameJL.setFont(new Font("宋体", 1, 15));
nameJL.setBorder(jbo);
nameJF = new JTextField(20);
nameJF.setEditable(false);
nameJF.setBorder(fbo);
nameJF.setText(u.getName());
bom.add(nameJL);
bom.add(nameJF);
//真实姓名
relNameJL = new JLabel("真实姓名:", JLabel.CENTER);
relNameJL.setIcon(new ImageIcon("img/username_icon.png"));
relNameJL.setFont(new Font("宋体", 1, 15));
relNameJL.setBorder(jbo);
relNameJF = new JTextField(20);
relNameJF.setEditable(false);
relNameJF.setBorder(fbo);
relNameJF.setText(u.getRelName());
bom.add(relNameJL);
bom.add(relNameJF);
//身份证号
carNumJL = new JLabel("身份证号:", JLabel.CENTER);
carNumJL.setIcon(new ImageIcon("img/idc_icon.png"));
carNumJL.setFont(new Font("宋体", 1, 15));
carNumJL.setBorder(jbo);
carNumJF = new JTextField(20);
carNumJF.setEditable(false);
carNumJF.setBorder(fbo);
carNumJF.setText(u.getCardNum());
bom.add(carNumJL);
bom.add(carNumJF);
//邮箱
emailJL = new JLabel("邮箱:", JLabel.CENTER);
emailJL.setIcon(new ImageIcon("img/msg_icon.png"));
emailJL.setFont(new Font("宋体", 1, 15));
emailJL.setBorder(jbo);
emailJF = new JTextField(20);
emailJF.setEditable(false);
emailJF.setBorder(fbo);
emailJF.setText(u.getEmail());
bom.add(emailJL);
bom.add(emailJF);
//余额
adMJL = new JLabel("余额:", JLabel.CENTER);
adMJL.setIcon(new ImageIcon("img/balance_icon.png"));
adMJL.setFont(new Font("宋体", 1, 15));
adMJL.setBorder(jbo);
adMJF = new JTextField(20);
adMJF.setEditable(false);
adMJF.setBorder(fbo);
adMJF.setText(String.valueOf(u.getMoney()));
bom.add(adMJL);
bom.add(adMJF);
this.add(top, BorderLayout.NORTH);
this.add(bom, BorderLayout.CENTER);
}
}
UpdatePasswordView
package com.pdsu.bankdemo.view;
import com.pdsu.bankdemo.controller.UserCloserUtil;
import com.pdsu.bankdemo.controller.UserController;
import com.pdsu.bankdemo.entity.User;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class UpdatePasswordView extends JPanel implements MouseListener {
private JPanel top, bom;
private JLabel PwdJL, newPwdJL, CnewPwdJL;
private JPasswordField PwdJF, newPwdJF, CnewPwdJF;
private JButton sub, reb;//提交重置按钮
private User users;
public UpdatePasswordView(User users) {
this.users = users;
this.setLayout(new BorderLayout());
//上边
top = new JPanel();
JLabel topJL = new JLabel("修改密码");
topJL.setFont(new Font("宋体", 1, 24));
top.add(topJL);
this.add(top, BorderLayout.NORTH);
//下边
bom = new JPanel();
bom.setBorder(new EmptyBorder(0, 40, 30, 40));
bom.setLayout(new GridLayout(5, 2, 10, 10));
EmptyBorder jbo = new EmptyBorder(0, 20, 0, 0);
EmptyBorder fbo = new EmptyBorder(20, 0, 20, 20);
//原密码
PwdJL = new JLabel("原密码:", JLabel.CENTER);
PwdJL.setFont(new Font("宋体", 1, 18));
PwdJL.setIcon(new ImageIcon("img/password_icon.png"));
PwdJL.setBorder(jbo);
PwdJF = new JPasswordField(20);
PwdJF.setBorder(fbo);
bom.add(PwdJL);
bom.add(PwdJF);
//请输入新密码
newPwdJL = new JLabel("新密码:", JLabel.CENTER);
newPwdJL.setFont(new Font("宋体", 1, 18));
newPwdJL.setIcon(new ImageIcon("img/password_icon.png"));
newPwdJL.setBorder(jbo);
newPwdJF = new JPasswordField(20);
newPwdJF.setBorder(fbo);
bom.add(newPwdJL);
bom.add(newPwdJF);
//再次输入密码
CnewPwdJL = new JLabel("再次输入密码:", JLabel.CENTER);
CnewPwdJL.setFont(new Font("宋体", 1, 18));
CnewPwdJL.setIcon(new ImageIcon("img/password_icon.png"));
CnewPwdJL.setBorder(jbo);
CnewPwdJF = new JPasswordField(20);
CnewPwdJF.setBorder(fbo);
bom.add(CnewPwdJL);
bom.add(CnewPwdJF);
//提交按钮
sub = new JButton("提交");
sub.setName("sub");
sub.addMouseListener(this);
bom.add(sub);
//重置按钮
reb = new JButton("重置");
reb.setName("reb");
reb.addMouseListener(this);
bom.add(reb);
this.add(bom, BorderLayout.SOUTH);
}
@Override
public void mouseClicked(MouseEvent e) {
String str = e.getComponent().getName();
switch ((str)) {
case "sub":
String Pwd = new String(PwdJF.getPassword());
String newPwd = new String(newPwdJF.getPassword());
String CnewPwd = new String(CnewPwdJF.getPassword());
System.out.println(newPwdJF.getPassword());
if(Pwd.equals(""))
{
JOptionPane.showMessageDialog(null, "原密码不能为空");
newPwdJF.setText(""); //设置为空
CnewPwdJF.setText("");
break;
}
if (newPwd.equals("")) {
JOptionPane.showMessageDialog(null, "新密码不能为空");
newPwdJF.setText(""); //设置为空
CnewPwdJF.setText("");
break;
}
if (CnewPwd.equals("")) {
JOptionPane.showMessageDialog(null, "再次输入不能为空");
CnewPwdJF.setText("");
break;
}
if (newPwd.equals(CnewPwd)) {
if (Pwd.equals(newPwd)) {
JOptionPane.showMessageDialog(null, "不能与原密码一致!");
newPwdJF.setText(""); //设置为空
CnewPwdJF.setText("");
break;
} else {
UserController userController = new UserController();
boolean flag= userController.updatePwd(users.getTel(),Pwd,newPwd);
if(flag){
JOptionPane.showMessageDialog(null, "改密成功,请重新登录");
UserCloserUtil.Close();
UserLoginView userLoginView = new UserLoginView();
System.out.println("修改成功");
break;
}
else {
JOptionPane.showMessageDialog(null, "改密失败");
}
}
} else {
JOptionPane.showMessageDialog(null, "密码输入不一致!");
}
break;
case "reb":
clear();
break;
}
}
/**
* 清空密码
*/
private void clear() {
// TODO Auto-generated method stub
PwdJF.setText("");
newPwdJF.setText(""); //设置为空
CnewPwdJF.setText("");
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
}
AddBanksView
package com.pdsu.bankdemo.view;
import com.pdsu.bankdemo.controller.BanksController;
import com.pdsu.bankdemo.dao.BanksDao;
import com.pdsu.bankdemo.entity.Banks;
import com.pdsu.bankdemo.entity.User;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.List;
public class AddBanksView extends JPanel implements MouseListener {
private JPanel top, bom;
private JLabel banksNumJL, moneyJL, banksNameJL;
private JTextField banksNumJF, moneyJF, banksNameJF;
private JButton sub;
private User user;
private BanksDao bdao = new BanksDao();
private Banks banks;
public AddBanksView(User user) {
this.user = user;
this.setLayout(new BorderLayout());
top = new JPanel();
top.setLayout(new GridLayout(3, 2, 20, 20));
//卡号
banksNumJL = new JLabel("卡号:", JLabel.CENTER);
banksNumJL.setFont(new Font("宋体", 1, 20));
banksNumJL.setIcon(new ImageIcon("img/username_icon.png"));
banksNumJF = new JTextField(15);
top.add(banksNumJL);
top.add(banksNumJF);
//开户行
banksNameJL = new JLabel("开户行:", JLabel.CENTER);
banksNameJL.setIcon(new ImageIcon("img/name_icon.png"));
banksNameJL.setFont(new Font("宋体", 1, 20));
banksNameJF = new JTextField(15);
top.add(banksNameJL);
top.add(banksNameJF);
//余额
moneyJL = new JLabel("余额:", JLabel.CENTER);
moneyJL.setFont(new Font("宋体", 1, 20));
moneyJL.setIcon(new ImageIcon("img/balance_icon.png"));
moneyJF = new JTextField(15);
top.add(moneyJL);
top.add(moneyJF);
this.add(top, BorderLayout.CENTER);
bom = new JPanel();
sub = new JButton("提交");
sub.setName("sub");
sub.addMouseListener(this);
bom.add(sub);
this.add(bom, BorderLayout.SOUTH);
}
@Override
public void mouseClicked(MouseEvent e) {
String bankNum = banksNumJF.getText();
String money = moneyJF.getText();
String bankName = banksNameJF.getText();
if (bankNum.equals("")) {
JOptionPane.showMessageDialog(null, "卡号不能为空");
clear();
return;
}
else {
List<Banks> blist = bdao.read();
for(Banks b:blist )
{
if(b.getBankNum().equals(bankNum))
{
JOptionPane.showMessageDialog(null, "卡号已存在");
clear();
return;
}
}
}
if (money.equals("")) {
JOptionPane.showMessageDialog(null, "余额不能为空");
return;
}
if (bankName.equals("")) {
JOptionPane.showMessageDialog(null, "开户行不能为空");
banksNumJF.setText("");
return;
}
double mo = Double.parseDouble(money);
BanksController b = new BanksController();
Banks banks = new Banks(bankNum, mo, bankName, user.getTel());
boolean flag = b.addBanks(banks);
{
if (flag) {
JOptionPane.showMessageDialog(null, "添加成功");
clear();
} else {
JOptionPane.showMessageDialog(null, "添加失败,请检查信息是否正确");
clear();
}
}
}
/**
* 清空密码重置下拉框
*/
private void clear() {
// TODO Auto-generated method stub
moneyJF.setText(""); //余额重置
banksNumJF.setText("");//卡号重置
banksNameJF.setText("");//开户行重置
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
}
ShowBanksView
package com.pdsu.bankdemo.view;
import com.pdsu.bankdemo.entity.Banks;
import javax.swing.*;
import java.util.List;
/**
* 显示银行卡
*/
public class ShowBanksView extends JPanel {
List<Banks> list;
public ShowBanksView(List<Banks> list) {
this.list = list;
JScrollPane js = new JScrollPane();
Object[] clum = {"卡号", "开户行", "余额"};
Object[][] data = new Object[list.size()][3];//三列
for (int i = 0; i < list.size(); i++) {
Banks b = list.get(i);
data[i][0] = b.getBankNum();//卡号
data[i][1] = b.getBankName();//开户行
data[i][2] = b.getMoney();//余额
}
JTable jTable = new JTable(data, clum);
js.setViewportView(jTable);
this.add(js);
}
}
AddUserMoneyView
package com.pdsu.bankdemo.view;
import com.pdsu.bankdemo.controller.BanksController;
import com.pdsu.bankdemo.controller.UserController;
import com.pdsu.bankdemo.entity.Banks;
import com.pdsu.bankdemo.entity.User;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.List;
/**
* 存款页面
*/
public class AddUserMoneyView extends JPanel implements MouseListener {
private JPanel top, bom;
private JLabel moneyJL, banksNumJL;
private JTextField moneyJF;
private JComboBox banksNumJB;
private JButton sub, reb;
private User user;
public AddUserMoneyView(User user, List<Banks> list) {
this.user = user;
this.setLayout(new BorderLayout());
top = new JPanel();
top.setLayout(new GridLayout(2, 2, 20, 20));
moneyJL = new JLabel("请输入充值金额:", JLabel.CENTER);
moneyJL.setIcon(new ImageIcon("img/balance_icon.png"));
moneyJL.setFont(new Font("宋体", 1, 20));
moneyJF = new JTextField(15);
top.add(moneyJL);
top.add(moneyJF);
banksNumJL = new JLabel("请选择充值账户:", JLabel.CENTER);
banksNumJL.setIcon(new ImageIcon("img/username_icon.png"));
banksNumJL.setFont(new Font("宋体", 1, 20));
banksNumJB = new JComboBox();
banksNumJB.addItem("--请选择--");
for (Banks b : list) {
banksNumJB.addItem(b.getBankNum());
}
top.add(banksNumJL);
top.add(banksNumJB);
this.add(top, BorderLayout.CENTER);
bom = new JPanel();
sub = new JButton("充值");
sub.setName("sub");
sub.addMouseListener(this);
reb = new JButton("重置");
reb.setName("reb");
reb.addMouseListener(this);
bom.add(sub);
bom.add(reb);
this.add(bom, BorderLayout.SOUTH);
}
@Override
public void mouseClicked(MouseEvent e) {
String str = e.getComponent().getName();
switch ((str)) {
case "sub":
String moneys = moneyJF.getText();
String banksNum = banksNumJB.getSelectedItem().toString();
if (moneys.equals("")) {
JOptionPane.showMessageDialog(null, "金额不能为空!");
moneyJF.setText(""); //设置为空
banksNumJB.setSelectedIndex(0);
return;
}
if ("--请选择--".equals(banksNum)) {
JOptionPane.showMessageDialog(null, "请选择银行卡!");
banksNumJB.setSelectedIndex(0);
return;
}
try {
double money = Double.parseDouble(moneys);
if (money <= 0) {
JOptionPane.showMessageDialog(null, "充值金额需大于0!!");
moneyJF.setText(""); //设置为空
banksNumJB.setSelectedIndex(0);
return;
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "请输入数字");
clear();
return;
}
double money = Double.parseDouble(moneys);
BanksController bController = new BanksController();
UserController uController = new UserController();
boolean flag = bController.DeleteBankMoney(banksNum, money);
if (flag) {
uController.AddUserMoney(user.getTel(), money);
user.setMoney(user.getMoney() + money);
JOptionPane.showMessageDialog(null, "充值成功!");
clear();
} else {
JOptionPane.showMessageDialog(null, "银行卡余额不足,请选择银行卡!");
clear();
}
break;
case "reb":
clear();
break;
}
}
/**
* 清空密码重置下拉框
*/
private void clear() {
// TODO Auto-generated method stub
moneyJF.setText(""); //设置为空
banksNumJB.setSelectedIndex(0);
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
}
DeleteUserMoneyView
package com.pdsu.bankdemo.view;
import com.pdsu.bankdemo.controller.BanksController;
import com.pdsu.bankdemo.controller.UserController;
import com.pdsu.bankdemo.entity.Banks;
import com.pdsu.bankdemo.entity.User;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.List;
/**
* 存款页面
*/
public class DeleteUserMoneyView extends JPanel implements MouseListener {
private JPanel top, bom;
private JLabel moneyJL, banksNumJL;
private JTextField moneyJF;
private JComboBox banksNumJB;
private JButton sub, clo;
private User user;
public DeleteUserMoneyView(User user, List<Banks> list) {
this.user = user;
this.setLayout(new BorderLayout());
top = new JPanel();
top.setLayout(new GridLayout(2, 2, 20, 20));
moneyJL = new JLabel("请输入提现金额:", JLabel.CENTER);
moneyJL.setIcon(new ImageIcon("img/balance_icon.png"));
moneyJL.setFont(new Font("宋体", 1, 20));
moneyJF = new JTextField(15);
top.add(moneyJL);
top.add(moneyJF);
banksNumJL = new JLabel("请选择提现账户:", JLabel.CENTER);
banksNumJL.setIcon(new ImageIcon("img/username_icon.png"));
banksNumJL.setFont(new Font("宋体", 1, 20));
banksNumJB = new JComboBox();
banksNumJB.addItem("--请选择--");
for (Banks b : list) {
banksNumJB.addItem(b.getBankNum());
}
top.add(banksNumJL);
top.add(banksNumJB);
this.add(top, BorderLayout.CENTER);
bom = new JPanel();
sub = new JButton("提现");
sub.setName("sub");
sub.addMouseListener(this);
clo = new JButton("重置");
clo.setName("clo");
clo.addMouseListener(this);
bom.add(sub);
bom.add(clo);
this.add(bom, BorderLayout.SOUTH);
}
@Override
public void mouseClicked(MouseEvent e) {
String str = e.getComponent().getName();
switch ((str)) {
case "sub":
String moneys = moneyJF.getText();
String banksNum = banksNumJB.getSelectedItem().toString();
if (moneys.equals("")) {
JOptionPane.showMessageDialog(null, "金额不能为空!");
clear();
return;
}
if ("--请选择--".equals(banksNum)) {
JOptionPane.showMessageDialog(null, "请选择银行卡!");
moneyJF.setText(""); //设置为空
banksNumJB.setSelectedIndex(0);
return;
}
try {
double money = Double.parseDouble(moneys);
if (money <= 0) {
JOptionPane.showMessageDialog(null, "提现金额需大于0!!");
clear();
return;
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "请输入数字");
clear();
return;
}
double money = Double.parseDouble(moneys);
BanksController bController = new BanksController();
UserController uController = new UserController();
boolean flag = bController.AddBankMoney(banksNum, money);
if (flag) {
uController.DeleteUserMoney(user.getTel(), money);
user.setMoney(user.getMoney() - money);
JOptionPane.showMessageDialog(null, "提现成功!");
clear();
} else {
JOptionPane.showMessageDialog(null, "账户余额不足");
clear();
}
break;
case "clo":
clear();
break;
}
}
/**
* 清空密码重置下拉框
*/
private void clear() {
// TODO Auto-generated method stub
moneyJF.setText(""); //设置为空
banksNumJB.setSelectedIndex(0);
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
}
TransToOtherView
package com.pdsu.bankdemo.view;
import com.pdsu.bankdemo.controller.UserCloserUtil;
import com.pdsu.bankdemo.controller.UserController;
import com.pdsu.bankdemo.dao.UserDao;
import com.pdsu.bankdemo.entity.User;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.List;
public class TransToOtherView extends JPanel implements MouseListener {
private JPanel top, bom;
private JLabel moneyJL, moveJL,adMJL;
private JTextField moneyJF, moveJF,adMJF;
private JButton sub,res;
private User users;
private UserDao udao = new UserDao();
private int count;
public TransToOtherView(User user) {
this.users = user;
this.setLayout(new BorderLayout());
//上半部分
top = new JPanel();
JLabel topJL = new JLabel("转账");
topJL.setFont(new Font("宋体",1,24));
top.add(topJL);
this.add(top,BorderLayout.NORTH);
//下半部分
bom = new JPanel();
bom.setLayout(new GridLayout(5,2,10,10));
bom.setBorder(new EmptyBorder(0,40,40,40));
EmptyBorder jbo = new EmptyBorder(0,50,0,0);//上左下右
EmptyBorder fbo = new EmptyBorder(20,0,20,20);
/**余额*/
//余额
adMJL = new JLabel("余额:", JLabel.CENTER);
adMJL.setIcon(new ImageIcon("img/balance_icon.png"));
adMJL.setFont(new Font("宋体", 1, 18));
adMJL.setBorder(jbo);
adMJF = new JTextField(20);
adMJF.setEditable(false);
adMJF.setBorder(fbo);
adMJF.setText(String.valueOf(users.getMoney()));
bom.add(adMJL);
bom.add(adMJF);
/**输入转账金额*/
moveJL = new JLabel("请输入转账金额",JLabel.CENTER);
moveJL.setIcon(new ImageIcon("img/balance_icon.png"));
moveJL.setFont(new Font("宋体",1,18));
moveJL.setBorder(jbo);
moveJF = new JTextField(20);
moveJF.setBorder(fbo);
bom.add(moveJL);
bom.add(moveJF);
/**输入对方账号*/
moneyJL = new JLabel("请输入对方账号",JLabel.CENTER);
moneyJL.setIcon(new ImageIcon("img/username_icon.png"));
moneyJL.setFont(new Font("宋体",1,18));
moneyJL.setBorder(jbo);
moneyJF = new JTextField(20);
moneyJF.setBorder(fbo);
bom.add(moneyJL);
bom.add(moneyJF);
/**提交按钮*/
sub = new JButton("提交");
sub.setName("sub");
sub.addMouseListener(this);
bom.add(sub);
/**重置按钮*/
res = new JButton("重置");
res.setName("res");
res.addMouseListener(this);
bom.add(res);
this.add(bom);
this.add(bom,BorderLayout.SOUTH);
}
public void mouseClicked(MouseEvent e) {
String str = e.getComponent().getName();
String move = moveJF.getText();
String money = moneyJF.getText();
switch ((str))
{
case "sub":
if (move.equals("")) {
JOptionPane.showMessageDialog((Component) null, "转账金额不能为空!");
moneyJF.setText("");
moveJF.setText("");
return;
} else if (money.equals("")) {
JOptionPane.showMessageDialog((Component) null, "转账账号不能为空!");
moveJF.setText("");
return;
} else {
List<User> u1 = udao.read();
for (User u : u1) {
if (money.equals(u.getTel())) {
count++;
}
}
if (count == 0) {
JOptionPane.showMessageDialog((Component) null, "该账号不存在!");
moneyJF.setText("");
moveJF.setText("");
return;
} else {
Double m_ove;
try {
m_ove = Double.parseDouble(move);
if (m_ove <= 0.0D) {
JOptionPane.showMessageDialog((Component) null, "转账金额不能小于零!!");
moneyJF.setText("");
moveJF.setText("");
return;
}
} catch (Exception var8) {
JOptionPane.showMessageDialog((Component) null, "请输入数字!!");
moneyJF.setText("");
moveJF.setText("");
return;
}
m_ove = Double.parseDouble(move);
UserController userController = new UserController();
boolean flag = userController.DeleteUserMoney(users.getTel(), m_ove);
if (flag) {
userController.AddUserMoney(money, m_ove);
users.setMoney(users.getMoney() - m_ove);
adMJF.setText(String.valueOf(users.getMoney()));
JOptionPane.showMessageDialog(null, "转账成功!");
moneyJF.setText("");
moveJF.setText("");
} else {
JOptionPane.showMessageDialog((Component) null, "银行卡余额不足,请更换银行卡");
}
}
}
break;
case "res":
moneyJF.setText("");
moveJF.setText("");
break;
}
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
}
UserManageView
package com.pdsu.bankdemo.view;
import com.pdsu.bankdemo.entity.Banks;
import com.pdsu.bankdemo.entity.User;
import javax.swing.*;
import java.util.List;
public class UserManageView extends JPanel {
List<User> list;
public UserManageView(List<User> list) {
this.list = list;
JScrollPane js = new JScrollPane();
Object[] clum = {"用户名", "手机号", "真实姓名", "身份证", "余额"};
Object[][] data = new Object[list.size()][5];//三列
for (int i = 0; i < list.size(); i++) {
User u = list.get(i);
data[i][0] = u.getName();//用户名
data[i][1] = u.getTel();//手机号
data[i][2] = u.getRelName();//真实姓名
data[i][3] = u.getCardNum();//身份证
data[i][4] = u.getMoney();//余额
}
JTable jTable = new JTable(data, clum);
js.setViewportView(jTable);
this.add(js);
}
}
Test
Main
package com.pdsu.bankdemo.test;
import com.pdsu.bankdemo.view.UserLoginView;
public class Main {
public static void main(String[] args) {
//启动程序
UserLoginView userLoginView = new UserLoginView();
}
}