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

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

2017-12-27 21:00 871 查看
还是老规矩 ,先上图, 得清晰的认识到自己写到哪了, 还差多少



我们看图 出了挂失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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: