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

还是老规矩 ,先上图, 得清晰的认识到自己写到哪了, 还差多少
这里写图片描述

我们看图 出了挂失ReportLose和信息注册Register 我们不要进行信息验证
其他在途中都必须进行
但我为什么要综合成一个呢, 因为懒, 觉得写6个一样的粘贴都感觉很狗

但既然使用一个 , 我们就需要建立变量 , 将我们在菜单选择的功能 记录
然后在login类中 分开处理

同时 在 编写时需要注意 用户名密码不能为为空,不能为中文

虽然现在还是不说 怎么写验证类 。但先将思路说一下

界面很无聊

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.*;

public class Login extends JFrame implements ActionListener{

    JButton jb1, jb2, jb3;  //按钮
    JPanel jp1,jp2,jp3, jp4;        //面板
    JTextField jtf;   //文本框
    JLabel jlb1, jlb2, jlb3; //标签
    JPasswordField jpf; //密码框

    String name = "123";   //账号密码
    String pwd = "123"; 
    String order;

    public Login(String order) {
        this.order = order;
        // 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();

        jlb1 = new JLabel("用户名");  //添加标签
        jlb2 = new JLabel("  密  码");

        jtf = new JTextField(10);   //创建文本框和密码框
        jpf = new JPasswordField(10);

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

        jp2.add(jlb2);
        jp2.add(jpf);

        jp3.add(jb1);
        jp3.add(jb2);

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

       //设置布局
        this.setTitle("用户登录");
        this.setLayout(new GridLayout(3,1));
        this.setSize(300, 200);   //设置窗体大小
        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 {
                login();
            } catch (HeadlessException | IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
        }
        else if(e.getActionCommand()=="重置")  
        {  
             clear();  
        }
    }
    //清空账号和密码框
    private void clear() {
        // TODO Auto-generated method stub
        jtf.setText("");    //设置为空
        jpf.setText("");  

    }

    //验证登录信息,并做处理
    public void login() throws HeadlessException, IOException
    {
        //判断账户名和密码是否包含中文
        if (new Check().checkcountname(jtf.getText())||new Check().checkcountname(jpf.getText()))
        {
            JOptionPane.showMessageDialog(null, "用户名或密码存在中文,不合法!","消息提示",JOptionPane.WARNING_MESSAGE);
        }
        else if(jtf.getText().isEmpty()&&jpf.getText().isEmpty())
        {
            JOptionPane.showMessageDialog(null, "账号密码为空,请输入!","消息提示",JOptionPane.WARNING_MESSAGE);
        }
        else if (jtf.getText().isEmpty()) 
        {
            JOptionPane.showMessageDialog(null, "账号为空,请输入!","消息提示",JOptionPane.WARNING_MESSAGE);
        }
        else if (jpf.getText().isEmpty()) 
        {
            JOptionPane.showMessageDialog(null, "密码为空,请输入!","消息提示",JOptionPane.WARNING_MESSAGE);

        }
        else if (new Check().check1(jtf.getText(),jpf.getText()))
        {
            JOptionPane.showMessageDialog(null,"登录成功!","提示消息",JOptionPane.WARNING_MESSAGE);
            //dispose();  //使文原窗体消失
            if (order.equals("查询"))
            {
                new Inquiry(jtf.getText()); //跳转到登录个人信息选项界面
                dispose();
            }
            if (order.equals("存款"))
            {
                new SaveMoney(jtf.getText());
                dispose();
            }
            if (order.equals("取款"))
            {
                new DrawMoney(jtf.getText());
                dispose();
            }
            if (order.equals("改密"))
            {
                new Modify(jtf.getText());
                dispose();
            }
            if (order.equals("转账"))
            {
                new Transfer(jtf.getText());
                dispose();
            }

        }
        else
        {
            JOptionPane.showMessageDialog(null, "账号密码错误请重新输入!","消息提示",JOptionPane.ERROR_MESSAGE);
            clear();  //调用清除函数
        }
    }



}

这里写图片描述

为什么先说查询类, 因为好做啊, 增删改查
当然查最好做, 当初写txt时候 就在思考 怎么改 最后还是解决了

但是个人信息毕竟是私人的, 所以我们 将部分信息用*代替后再显示

感觉注释写的挺清楚的

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:54:17
 *
 */
public class Inquiry extends JFrame implements ActionListener{

    JLabel jlb1, jlb2, jlb3;  //标签
    JTextField jtf1,jtf2,jtf3;   //文本框
    JPasswordField jpf; //密码框
    JPanel jp1,jp2,jp3;     //面板

    public Inquiry(String countname) throws IOException {
        // TODO Auto-generated constructor stub
        //标签信息

        jlb1 = new JLabel("        姓名");
        jlb2 = new JLabel("身份证号");
        jlb3 = new JLabel("        余额");

        jtf1 = new JTextField(13);
        jtf2 = new JTextField(13);
        jtf3 = new JTextField(13);

        jp1 = new JPanel();
        jp2 = new JPanel();
        jp3 = new JPanel();

        jp1.add(jlb1);
        jp1.add(jtf1);
        jp2.add(jlb2);
        jp2.add(jtf2);
        jp3.add(jlb3);
        jp3.add(jtf3);

        //设置布局
        this.setTitle("查询");
        this.setLayout(null);   //采用空布局

        jp1.setBounds(-10, 40, 300 ,50);   //-别问我为什么-10 因为 界面好看一点啊
        jp2.setBounds(-10, 110, 300 ,50);
        jp3.setBounds(-10, 180, 300 ,50);

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

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

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

        String []message = new UserMessage().read(countname);

        //将姓名的第一个字变为*
        message[0] ="*"+message[0].substring(1,message[0].length());
        //将身份证号第6到12位变成*
        message[1] =message[1].substring(0,6)+"*******"+message[1].substring(13,message[1].length());


        jtf1.setText(message[0]);   //将信息显示在文本框中
        jtf2.setText(message[1]);
        jtf3.setText(message[4]);




    }

    @Override
    public void actionPerformed(ActionEvent arg0) {
        // TODO Auto-generated method stub

    }

}

这里写图片描述

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

  • 14
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值