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