JAVA实训项目:银行网银系统管理平台(含源码)

文章目录

  • JAVA实训项目:银行网银系统管理平台(含源码)
  • 前言
  • 一、项目功能需求描述以及相关技术的应用
    • 相关技术应用
  • 二、设计过程
    • 系统流程图
    • 1.登陆页面
    • 2.注册页面
    • 3.首页
    • 4.个人信息展示
    • 5.修改密码
    • 6.添加银行卡
    • 7.银行卡显示
    • 8.充值
    • 9.提现
    • 10.转账
    • 11.用户管理
  • 三、源码展示
    • 1.实体类创建
      • User
      • Banks
      • Admin
    • 2.Dao层
      • UserDao
      • BanksDao
      • AdminDao
    • 3.Controller
      • UserController
      • BanksController
      • UserCloserUtil
    • 4.Service
      • BanksService接口
      • UserService接口
      • UserServiceImpl
      • BanksServiceImpl
    • 5.View
      • UserLoginView
      • AddUserView
      • MainView
      • ShowUsersView
      • UpdatePasswordView
      • AddBanksView
      • ShowBanksView
      • AddUserMoneyView
      • DeleteUserMoneyView
      • TransToOtherView
      • UserManageView
    • Test
      • Main
  • 制作不易,动动小手支持一下,感谢!

前言

   大一最后的实训项目,也是算大一的结束的标志。

一、项目功能需求描述以及相关技术的应用

本网银系统管理平台主要任务是对用户办理储蓄业务(如存款,取款等)和对个人账户下的银行卡进行管理。
对于用户,主要实现的功能有个人信息的管理基本的增改查(包括注册,登录,修改密码,个人信息查看)以及用户之间进行余额的转账。
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个层

  1. com.pdsu.bankdemo.entity 实体类层 放置实体类
  2. com.pdsu.bankdemo.dao dao层 操作数据
  3. com.pdsu.bankdemo.service 服务层 处理业务
  4. com.pdsu.bankdemo.controller 控制层 控制操作
  5. com.pdsu.bankdemo.view 视图层 展示信息
  6. 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;}@Overridepublic 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;}@Overridepublic 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;}@Overridepublic 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 -->serviceprivate 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 _>DAOprivate UserDao dao = new UserDao();@Overridepublic 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;//失败}@Overridepublic boolean addUser(User user) {List<User> list = dao.read();//读取数据list.add(user);return dao.write(list);}@Overridepublic boolean isExistTel(String tel) {List<User> list = dao.read();//读取数据for (User u : list) {if (u.getTel().equals(tel)) {return true;//手机号相同}}return false;}@Overridepublic boolean isExistEmail(String email) {List<User> list = dao.read();//读取数据for (User u : list) {if (u.getEmail().equals(email)) {return true;//邮箱号相同}}return false;}@Overridepublic 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*/@Overridepublic 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*/@Overridepublic 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();@Overridepublic boolean addBanks(Banks banks) {List<Banks> list = dao.read();list.add(banks);return dao.write(list);}@Overridepublic 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*/@Overridepublic 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);}/*** 提现--银行加钱*/@Overridepublic 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);//可关闭}@Overridepublic 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);}}@Overridepublic void mousePressed(MouseEvent e) {// TODO 自动生成的方法存根}@Overridepublic void mouseReleased(MouseEvent e) {// TODO 自动生成的方法存根}@Overridepublic void mouseEntered(MouseEvent e) {// TODO 自动生成的方法存根}@Overridepublic 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);}@Overridepublic 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("");}@Overridepublic void mousePressed(MouseEvent e) {}@Overridepublic void mouseReleased(MouseEvent e) {}@Overridepublic void mouseEntered(MouseEvent e) {}@Overridepublic 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();}@Overridepublic 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;}}@Overridepublic void mousePressed(MouseEvent e) {}@Overridepublic void mouseReleased(MouseEvent e) {}@Overridepublic void mouseEntered(MouseEvent e) {}@Overridepublic 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);}@Overridepublic 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 stubPwdJF.setText("");newPwdJF.setText("");    //设置为空CnewPwdJF.setText("");}@Overridepublic void mousePressed(MouseEvent e) {}@Overridepublic void mouseReleased(MouseEvent e) {}@Overridepublic void mouseEntered(MouseEvent e) {}@Overridepublic 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);}@Overridepublic 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 stubmoneyJF.setText("");    //余额重置banksNumJF.setText("");//卡号重置banksNameJF.setText("");//开户行重置}@Overridepublic void mousePressed(MouseEvent e) {}@Overridepublic void mouseReleased(MouseEvent e) {}@Overridepublic void mouseEntered(MouseEvent e) {}@Overridepublic 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);}@Overridepublic 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 stubmoneyJF.setText("");    //设置为空banksNumJB.setSelectedIndex(0);}@Overridepublic void mousePressed(MouseEvent e) {}@Overridepublic void mouseReleased(MouseEvent e) {}@Overridepublic void mouseEntered(MouseEvent e) {}@Overridepublic 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);}@Overridepublic 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 stubmoneyJF.setText("");    //设置为空banksNumJB.setSelectedIndex(0);}@Overridepublic void mousePressed(MouseEvent e) {}@Overridepublic void mouseReleased(MouseEvent e) {}@Overridepublic void mouseEntered(MouseEvent e) {}@Overridepublic 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();}
}

制作不易,动动小手支持一下,感谢!

JAVA实训项目:银行网银系统管理平台(含源码)相关推荐

  1. Java实训项目一一拼图游戏(附源码)

    1 实训基本信息 1.1 实训项目名称 (1)拼图游戏 1.2 实训环境 本次实训内容主要针对专业学生,实训形式以实战讲解为主导.实训课程由实训老师主讲,实训老师教学严谨又平易近人,讲解的内容非常细致 ...

  2. Java实训项目一一考试系统(附源码)

    1 实训基本信息 1.1 实训项目名称 (1)考试系统 1.2 实训环境 本次实训内容主要针对专业学生,实训形式以实战讲解为主导.实训课程由实训老师主讲,实训老师教学严谨又平易近人,讲解的内容非常细致 ...

  3. 2020年Java实训项目【GUI学生信息管理系统】目录

    Java实训项目1:GUI学生信息管理系统 - 实训概述 Java实训项目2:GUI学生信息管理系统 - 系统概述 Java实训项目3:GUI学生信息管理系统 - 涉及知识点 Java实训项目4:GU ...

  4. Java实训项目:GUI学生信息管理系统(2019)【下】

    Java实训项目:GUI学生信息管理系统(2019)[下] 本篇目录 六.实现步骤 13.应用程序类 14.窗口界面类(JFrame)

  5. Java实训项目:GUI学生信息管理系统(2019)【中】

    Java实训项目:GUI学生信息管理系统(2019)[中] 本篇目录 四.涉及知识点 1.Java基本语法 2.Java流程控制

  6. Java实训项目:GUI学生信息管理系统(2019)【上】

    Java实训项目:GUI学生信息管理系统(2019)[上] 本篇目录 零.实训概述 1.实训目的 2.项目简介

  7. Java实训项目:GUI学生信息管理系统(2017)

    Java实训项目:GUI学生信息管理系统(2017) 实训目的:让学生综合运用J2SE有关知识开发[学生信息管理系统].主要涉及程序控制结构.面向对象编程.图形用户界面.Java数据库应用.MySQL ...

  8. Java实训项目--小型书店管理系统(ssm框架)

    系列文章目录 MyBatis专栏: 一:Java实训项目–小型图书管理系统(ssm框架) 二:"spring与mybatis整合"考试题目测试与解析 三:"SSM框架整合 ...

  9. java计算机毕业设计高校实习实训管理系统MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计高校实习实训管理系统MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计高校实习实训管理系统MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: 项目 ...

最新文章

  1. 制作一个查询信息程序_三步学会制作一个小程序
  2. 会计的思考(38):会计--让业务做到心中有数,有真数
  3. 干货|常用渗透漏洞poc、exp收集整理
  4. Sequelize 4.42.1 发布,基于 Nodejs 的异步 ORM 框架
  5. 2 Python 介绍
  6. mbed试玩—高速开发MCU应用(基于FRDM-KL25Z)
  7. Jsp+javascript打造二级级联下拉菜单
  8. 资源 | 邓力、刘洋等合著的这本NLP经典书籍之情感分析中文版
  9. 支持乱序执行的RAFT协议 ppt
  10. 哈哈哈,看着问题一个个解决,很有满足感哦
  11. 软件设计原则(二) 接口隔离原则
  12. 软考网络工程师备考技巧大揭秘
  13. 玩许多计算机游戏的英语,玩电脑游戏英语作文
  14. 手机home键、POWER 键分别是什么
  15. 《嵌入式系统 – NUC980 IoT应用开发实战指南(基于RT-Thread系统)》第3章 NUC980 IoT I2C实践
  16. 【前端框架】Element UI Dialog 组件中执行 DOM 操作异常问题的分析与处理
  17. 齐岳|马铃薯凝集素修饰PLGA纳米粒|利福平PLGA纳米粒|齐墩果酸/乳酸羟基乙酸共聚物-水溶性维生素E衍生物(PLGA-TPGS)纳米粒
  18. Android接入三方登录——QQ、微信、Facebook、Twitter
  19. 【pion】ice-single-port解析
  20. Java获取IP及归属地

热门文章

  1. 小桥加加的英语学习博客
  2. python可以写前端吗_python之前端
  3. iOS 气泡聊天效果
  4. 复仇者联盟1-3讲解
  5. Ser232Mon免费串口监视
  6. RT系统+STM32+SYN8266播报+红外定时器
  7. Unity Shader Graph 制作Rim Light边缘光效果
  8. oracle 聚合函数 条件,Oracle PLSQL之HAVING后面的条件可由聚合函数构成,也可由GROUP BY后的字段构成...
  9. 基础知识,DSP芯片介绍
  10. vue新框架nuxt通过文件目录自动生成路由