您的位置:首页 > 编程语言 > Java开发

JAVA小项目-银行管理系统(图形化界面)2-开户与挂失

2017-12-25 19:51 691 查看
先上 流程图



这次编写开户界面和登录界面

其实 也没什么需要说的

制作 ,姓名,身份证号, 账户名, 密码 开户金额等信息

需要注意的是 身份证号为18位, 并且开户金额必须大于0元

所以我们在事件监听时 要注意

由于 开户操作需要 进行 写入信息的处理, 我们们会验证Check 该账户是否合法或存在, 然后写入UserMessage, 在代码中调用的

new Check().checkmoney();
new Check().check2(message[2]);
和
new UserMessage().write(message);


new Check().checkmoney();//验证金额信息是否合法

Check().check2();是我们进行账户是否存在的验证操作

new UserMessage().write(message); 是将文件写入文本存储

但在此文章内 并不给出Check和UserMessage的具体写法, 我们将在这2个类书写完后讲解

JOptionPane.showMessageDialog(null, "信息有空缺,请补全!","消息提示",JOptionPane.WARNING_MESSAGE);


弹出一个对话框, 详情移步: 点击进入

http://blog.csdn.net/changjiale110/article/details/78867779

先给出 开户类Register

package contentcl;

import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;

import javax.swing.*;

/**
* 此类完成对开户页面的编写, 用户需填写 姓名,身份证号, 账户,密码,开户金额信息
*
* 并且会进行验证操作, 如姓名是否合法(中文), 身份证号是否合法等等
* @author contentcl
* @Date 2017年12月27日 下午8:32:19
*
*/
public class Register extends JFrame implements ActionListener{

JButton jb1, jb2;  //按钮
JLabel jlb1, jlb2, jlb3,jlb4,jlb5, jlb6;  //标签
JTextField jtf1,jtf2,jtf3,jtf4, jtf5;   //文本框
JPasswordField jpf; //密码框
JPanel jp1,jp2,jp3, jp4,jp5,jp6,jp7;        //面板

public Register() {
// TODO Auto-generated constructor stub
//按钮
jb1 = new JButton("确定");
jb2 = new JButton("重置");
//设置按钮监听
jb1.addActionListener(this);
jb2.addActionListener(this);
//标签信息

jlb1 = new JLabel("        姓名");
jlb2 = new JLabel("身份证号");
jlb3 = new JLabel("        账号");
jlb4 = new JLabel("        密码");
jlb6 = new JLabel("注册信息");
jlb5 = new JLabel("开户金额");

jlb6.setFont(new   java.awt.Font("Dialog",   1,   20));   //设置字体类型,加粗,大小为20
//文本信息
jtf1 = new JTextField(13);
jtf2 = new JTextField(13);
jtf3 = new JTextField(13);
jtf4 = new JTextField(13);
jtf5 = new JTextField(13);

jp1 = new JPanel();
jp2 = new JPanel();
jp3 = new JPanel();
jp4 = new JPanel();
jp5 = new JPanel();
jp6 = new JPanel();
jp7 = new JPanel();
//将对应信息加入面板中
jp1.add(jlb1);
jp1.add(jtf1);

jp2.add(jlb2);
jp2.add(jtf2);

jp3.add(jlb3);
jp3.add(jtf3);

jp4.add(jlb4);
jp4.add(jtf4);

jp5.add(jlb5);
jp5.add(jtf5);

jp6.add(jb1);
jp6.add(jb2);

jp7.add(jlb6);

//将JPane加入JFrame中
this.add(jp7);  //先加入提示语

this.add(jp1);
this.add(jp2);
this.add(jp3);
this.add(jp4);
this.add(jp5);
this.add(jp6);

//设置布局
this.setTitle("注册信息");
this.setLayout(new GridLayout(7, 1));
this.setSize(350, 350);   //设置窗体大小
this.setLocationRelativeTo(null);//在屏幕中间显示(居中显示)
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);  //设置仅关闭当前窗口

this.setVisible(true);  //设置可见
this.setResizable(false);   //设置不可拉伸大小

}

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (e.getActionCommand()=="确定")
{
try {
register();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
else if (e.getActionCommand()=="重置")
{
clear();
}

}
//验证注册信息,并做处理
public void register() throws IOException
{
//判断信息是否补全
if (jtf1.getText().isEmpty()||jtf2.getText().isEmpty()||
jtf3.getText().isEmpty()||jtf4.getText().isEmpty()||jtf5.getText().isEmpty())
{
JOptionPane.showMessageDialog(null, "信息有空缺,请补全!","消息提示",JOptionPane.WARNING_MESSAGE);
}
//判断身份证号是否为18位
else if (jtf2.getText().length()!=18)
{
JOptionPane.showMessageDialog(null, "非法身份证号,请重新输入!","消息提示",JOptionPane.WARNING_MESSAGE);
}
//判断金额是否合法
else if (!new Check().checkmoney(jtf5.getText()))
{
JOptionPane.showMessageDialog(null, "存入金额不合法!","消息提示",JOptionPane.WARNING_MESSAGE);
}
//判断姓名是否为全中文
else if (!new Check().checkname(jtf1.getText()))
{
JOptionPane.showMessageDialog(null, "姓名不合法!","消息提示",JOptionPane.WARNING_MESSAGE);
}
//判断账户名和密码是否包含中文
else if (new Check().checkcountname(jtf3.getText())||new Check().checkcountname(jtf4.getText()))
{
JOptionPane.showMessageDialog(null, "用户名或密码存在中文,不合法!","消息提示",JOptionPane.WARNING_MESSAGE);
}
//满足要求
else if (!jtf1.getText().isEmpty()&&!jtf2.getText().isEmpty()&&
!jtf3.getText().isEmpty()&&!jtf4.getText().isEmpty()&&!jtf5.getText().isEmpty())
{
//注册成功, 打包为信息数组传递给UserMessage进行更新操作
String []message = new String[5];
message[0] = jtf1.getText();   //获取输入的文本信息
message[1] = jtf2.getText();
message[2] = jtf3.getText();
message[3] = jtf4.getText();
message[4] = jtf5.getText();
if (!new Check().check2(message[2]))   //调用Check的check方法检测用户是否存在, 如果不存在执行
{
new UserMessage().write(message);   //调用UserMseeage的write方法进行写操作, 将信息格式化存入
JOptionPane.showMessageDialog(null,"注册成功!","提示消息",JOptionPane.WARNING_MESSAGE);
dispose();  //使窗口消失
}
else
{
JOptionPane.showMessageDialog(null,"账号已存在,请重新输入!","提示消息",JOptionPane.WARNING_MESSAGE);
//dispose();
}
}
}

//清空账号和密码框
private void clear() {
// TODO Auto-generated method stub
jtf1.setText("");    //设置为空
jtf2.setText("");
jtf3.setText("");
jtf4.setText("");
jtf5.setText("");

}

}


给几个截图





下面是 挂失框

布局其实都类似 网格布局

确定键 跳转到 自写的ok()方法中 , 重置键调用clear方法 进行内容清空

挂失类中的信息验证和开户有所不同, 虽然都用Check.check2 验证了 是否存在

但是 我们在找回密码时 也要验证其 账户名与个人的信息如 身份证号和姓名 是否 与开户时相同 所以我们又在Check类 编写了 一个check3 的方法 而且该方法是有返回值的 , 我们返回找回密码

根据思路实现代码 这里与前面多了一个JTextArea(); 文本框 用来显示 返回的密码

code:

package contentcl;

import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextArea;
import javax.swing.JTextField;

/**
*
* @author contentcl
* @Date 2017年12月24日 下午6:52:47
*
*此类是对挂失模块的编写,用户利用身份证号和姓名, 进行对户名下的账号进行找回密码操作
*/
public class ReportLose extends JFrame implements ActionListener{
JButton jb1, jb2, jb3;  //按钮
JPanel jp1,jp2,jp3, jp4;        //面板
JTextField jtf1,jtf2,jtf3,jtf4;   //文本框
JLabel jlb1, jlb2, jlb3; //标签
JTextArea jta;
public ReportLose()
{
// TODO Auto-generated constructor stub
jb1 = new JButton("确定");
jb2 = new JButton("重置");
//设置按钮监听
jb1.addActionListener(this);
jb2.addActionListener(this);

jp1 = new JPanel();  //创建面板
jp2 = new JPanel();
jp3 = new JPanel();
jp4 = new JPanel();

jlb1 = new JLabel("        姓名");  //添加标签
jlb2 = new JLabel("身份证号");
jlb3 = new JLabel("        账号");

jtf1 = new JTextField(13);  //创建文本框
jtf2 = new JTextField(13);
jtf3 = new JTextField(13);

//创建文本框
jta = new JTextArea();

//加入面板中
jp1.add(jlb1);
jp1.add(jtf1);

jp2.add(jlb2);
jp2.add(jtf2);

jp3.add(jlb3);
jp3.add(jtf3);

jp4.add(jb1);
jp4.add(jb2);

//设置布局
this.setTitle("找回密码");
this.setLayout(new GridLayout(6,1));  //采用网格布局 6,1
this.setSize(400, 350);
//this.setLocation(400, 200);

//将JPane加入JFrame中
this.add(jp1);
this.add(jp2);
this.add(jp3);
this.add(jp4);
this.add(jta);

this.setLocationRelativeTo(null);//在屏幕中间显示(居中显示)
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);  //设置仅关闭当前窗口

this.setVisible(true);  //设置可见
this.setResizable(false);   //设置不可拉伸大小

}

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (e.getActionCommand()=="确定")
{
try {
ok();
} catch (HeadlessException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
else if(e.getActionCommand()=="重置")
{
clear();
}
}
//
private void ok() throws HeadlessException, IOException {
// TODO Auto-generated method stub
//信息有空缺
if (jtf1.getText().isEmpty()||jtf2.getText().isEmpty()||
jtf3.getText().isEmpty())
{
JOptionPane.showMessageDialog(null, "信息有空缺,请补全!","消息提示",JOptionPane.WARNING_MESSAGE);
}
//判断身份证号是否为18位
else if (jtf2.getText().length()!=18)
{
JOptionPane.showMessageDialog(null, "非法身份证号,请重新输入!","消息提示",JOptionPane.WARNING_MESSAGE);
}
else
{
String []message = new String[3];
message[0] = jtf1.getText();
message[1] = jtf2.getText();
message[2] = jtf3.getText();
if (new Check().check2(message[2]))   //调用Check的check方法检测用户是否存在, 如果存在
{
String nowpwd = new Check().check3(message[0],message[1],message[2]);//判断姓名,身份证号, 用户名,是否匹配
if (nowpwd!=null)
{
JOptionPane.showMessageDialog(null,"请点击确定查看!","提示消息",JOptionPane.WARNING_MESSAGE);
jta.setText("您的密码为:"+nowpwd+"  ,请妥善保存!");
}
else
{
JOptionPane.showMessageDialog(null,"用户信息和该账号不匹配,请核对!","提示消息",JOptionPane.WARNING_MESSAGE);
}
}
else
{
JOptionPane.showMessageDialog(null,"账号不存在,请核对账户信息!","提示消息",JOptionPane.WARNING_MESSAGE);
//dispose();
}
}
}

//清空账号和密码框
private void clear() {
// TODO Auto-generated method stub
jtf1.setText("");    //设置为空
jtf2.setText("");
jtf3.setText("");

}

}




马上就到了 验证类 不要着急

JAVA小项目-银行管理系统(图形化界面)1-菜单

http://blog.csdn.net/changjiale110/article/details/78880024

JAVA小项目-银行管理系统(图形化界面)2-开户与挂失

http://blog.csdn.net/changjiale110/article/details/78896168

JAVA小项目-银行管理系统(图形化界面)3-登录与查询

http://blog.csdn.net/changjiale110/article/details/78916391

JAVA小项目-银行管理系统(图形化界面)4-验证

http://blog.csdn.net/changjiale110/article/details/78916497

JAVA小项目-银行管理系统(图形化界面)5-用户信息读写

http://blog.csdn.net/changjiale110/article/details/78926473

JAVA小项目-银行管理系统(图形化界面)6-存款与取款

http://blog.csdn.net/changjiale110/article/details/78926600

JAVA小项目-银行管理系统(图形化界面)7-改密与转账

http://blog.csdn.net/changjiale110/article/details/78955018

整体项目演示+源码包

http://blog.csdn.net/changjiale110/article/details/78955353
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: