《应用Java Swing GUI技术实现的网上银行自助服务系统的应用实例》由会员分享,可在线阅读,更多相关《应用Java Swing GUI技术实现的网上银行自助服务系统的应用实例(42页珍藏版)》请在金锄头文库上搜索。
1、杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料应用Java Swing GUI技术实现的网上银行自助服务系统的应用实例1.1.1 系统功能说明1、本系统使用SQL Server 2000数据库(1)在数据库Bank中定义两个数据库表account和userInfo其中,表account用于保存帐户信息,表userInfo用于保存帐户使用者的个人身份信息。表account各字段定义如下:其中的id账号(主键),password取款密码,state帐户状态,balance帐户余额,userID用户身份证号。而表userInfo各字段定义如下:其中的userID用户身份证号(主键),use
2、rName用户姓名,sex性别,birthday出生日期,address联系地址,postcode邮政编码,telephone联系电话,mobilephone移动电话,email电子邮件。(2)创建数据库Bank和相关的数据库表结构的SQL脚本代码示例if exists (select * from dbo.sysobjects where id = object_id(Ndbo.account) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.accountGOif exists (select * from dbo.sysob
3、jects where id = object_id(Ndbo.userInfo) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.userInfoGOCREATE TABLE dbo.account (id varchar (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,password varchar (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,state varchar (10) COLLATE Chinese_PRC_CI_AS NULL ,balan
4、ce float NULL ,userID varchar (50) COLLATE Chinese_PRC_CI_AS NOT NULL ) ON PRIMARYGOCREATE TABLE dbo.userInfo (userID varchar (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,userName varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,sex varchar (5) COLLATE Chinese_PRC_CI_AS NULL ,birthday varchar (20) COLLATE C
5、hinese_PRC_CI_AS NULL ,address varchar (200) COLLATE Chinese_PRC_CI_AS NULL ,postcode varchar (10) COLLATE Chinese_PRC_CI_AS NULL ,telephone varchar (20) COLLATE Chinese_PRC_CI_AS NULL ,mobilephone varchar (20) COLLATE Chinese_PRC_CI_AS NULL ,email varchar (200) COLLATE Chinese_PRC_CI_AS NULL ) ON P
6、RIMARYGO2、本系统菜单均定义了快捷键操作,其结构和功能如下(1)用户管理(U)1) 注册身份信息(R)首次使用系统注册个人身份信息2) 修改身份信息(M)修改已注册的个人身份信息3) 查询身份信息(S)查询已注册的个人身份信息4) 退出系统(E)退出系统(2)帐户管理(A)1) 重新登录(L)注销登录信息2) 查询帐户信息(S)查询帐户信息3) 修改帐户信息(M)修改帐户取款密码(3)业务管理(B)1) 存款(D)存款2) 取款(W)取款3) 转账(T)转账(4)后台管理(M)1) 身份信息管理(U)(功能未实现)2) 帐户信息管理(A)(功能未实现)3) 系统设置(C)设置系统界面风
7、格(5)系统帮助(H)1) 帮助(C)显示“帮助信息”对话框2) 关于(A)显示“关于”对话框3、程序运行后主界面窗体如下:输入用户名和密码之后,登录对话框隐藏,主窗口被激活,并显示欢迎界面。4、“用户管理(U)注册身份信息(R)”功能如果该帐户为第一次登录并使用本系统,单击菜单“用户管理”“注册身份信息”,以注册个人身份信息。如果再次点击“注册”按钮,或者不是第一次登录并使用本系统,将弹出提示对话框,并自动显示“查询身份信息”界面。5、“用户管理(U)修改身份信息(M)”功能如果用户已经注册了身份信息,通过此功能将能修改身份信息。如果未注册个人信息就使用本功能,将弹出提示对话框。6、“用户管
8、理(U)查询身份信息(S)”功能查询已经注册的身份信息。7、“用户管理(U)退出系统(E)”功能退出系统,关闭窗口。8、“帐户管理(A)重新登录(L)”功能注销登录信息,显示登录对话框。9、“帐户管理(A)查询帐户信息(S)”功能显示帐号、帐户状态以及余额等信息。10、“帐户管理(A)修改帐户信息(M)”功能修改帐户取款密码。如果新密码与确认密码不一致,系统弹出错误信息对话框。新密码与确认密码一致则保存成功。11、“业务管理(B)存款(D)”功能输入要存入的金额,单击“确定”按钮。单击“重置”按钮,“存款数额”文本框将被清空。根据用户的选择,确定是否存入该数额,单击“是”按钮,帐户余额将被刷新
9、。如果没有输入任何字符或者输入了非数字字符或者小于0的数字,系统将弹出警告对话框。12、“业务管理(B)取款(W)”功能业务功能实现与存款类似。13、“业务管理(B)转账(T)”功能由当前登录帐户向某帐户转账款项。如果转入帐户存在,系统将弹出提示对话框,用户需确认是否向该帐户转账。如果出现转入帐户不存在,转账金额超过转出帐户余额,转账金额输入非数字字符等情况,系统均会弹出错误对话框。对转账功能的数据库修改操作由事务保证其完整性。14、“后台管理(M)身份信息管理(U)”功能及“后台管理(M)帐户信息管理(A)”功能均未实现,如果用户单击该菜单,系统将弹出警告对话框。15、“后台管理(M)系统设
10、置(C)”功能提供四种不同的用户界面风格供用户选择,单击“确定”按钮后,所选设置将被序列化保存到系统配置文件config.obj中,当系统下一次启动时将自动读取该配置文件以设置界面显示风格。当系统重新启动后,新界面风格设置将被应用。16、“系统帮助(H)帮助(C)”功能显示系统“帮助信息”对话框。该对话框内包含一些系统使用说明和注意事项信息。17、“系统帮助(H)关于(A)”功能显示系统“关于”对话框。该对话框内包含一些系统版本信息。18、日志记录功能全系统由后台日志监听线程记录用户的各项关键操作。由于网络或数据库等原因导致用户操作失败的信息都将被该线程记录到日志文件LogDataFile.t
11、xt中。20XX/11/30 23:29:13 帐户: 1, 登录系统成功.20XX /11/30 23:29:18 帐户: 1, 修改身份信息成功.20XX /11/30 23:29:24 帐户: 1, 存款1000.0元成功.20XX /11/30 23:29:29 帐户: 1, 取款1000.0元成功.20XX /11/30 23:29:35 帐户: 1, 存储配置文件成功, 配置界面风格为: com.sun.java.swing.plaf.windows.WindowsLookAndFeel.20XX /11/30 23:29:42 帐户: 1, 向帐户: 2, 转账1000.0元成功
12、.20XX /11/30 23:29:44 帐户: 1, 退出系统.1.1.2 系统核心程序代码1、Login程序类的代码示例import java.io.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import edu.bjtu.rjxy.ebank.model.*;public class Login extends JDialog private static final long serialVersionUID = 4611719828113663888L;private JTextField dp
13、_Login_txtID;private JPasswordField dp_Login_txtPassword;private String systemStyle = null;public Login(JFrame parent) super(parent, 网上银行自助服务系统-用户登录, true);getContentPane().setLayout(null);/ 设置对话框的尺寸及初始化的位置int dialogWidth = 440;int dialogHeight = 200;int startingPositionX = (Toolkit.getDefaultToolki
14、t().getScreenSize().width - dialogWidth) / 2;int startingPositionY = (Toolkit.getDefaultToolkit().getScreenSize().height - dialogHeight) / 2;setBounds(startingPositionX, startingPositionY, dialogWidth,dialogHeight);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);final JDesktopPane dp_Login = new JDesktopPane();dp_Login.setBackground(UIManager.getColor(Panel.background);dp_Login.setBounds(0, 0, 432, 166);getContentPane().add(dp_Login);final JPanel dp_Login_pnlLogin = new JPanel();dp_Login_pnlLogin.