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

先上 流程图
这里写图片描述

这次编写开户界面和登录界面
其实 也没什么需要说的
制作 ,姓名,身份证号, 账户名, 密码 开户金额等信息
需要注意的是 身份证号为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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值