📄 login.java
字号:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
class login extends Frame implements ActionListener
{
//定义所需的控件
private Label name=new Label("用户名:");
private Label pass=new Label("密码:");
private TextField name_txt=new TextField(120);
private TextField pass_txt=new TextField(120);
private Button ok=new Button("确定");
private Button exit=new Button("取消");
private Button regedit=new Button("注册");
login()
{ //设置密码框的掩码
pass_txt.setEchoChar('*');
//定义4个临时的label,用来填充空白区域
Label temp1=new Label(" ");
temp1.setBackground(new Color(214,211,206));
Label temp2=new Label(" ");
temp2.setBackground(new Color(214,211,206));
Label temp3=new Label(" ");
temp3.setBackground(new Color(214,211,206));
Label temp4=new Label(" ");
temp4.setBackground(new Color(214,211,206));
//设置窗口的背景色为窗口颜色,并用临时label来填充4个边
this.setBackground(new Color(214,211,206));
this.add(temp1,BorderLayout.EAST);
this.add(temp2,BorderLayout.SOUTH);
this.add(temp3,BorderLayout.WEST);
this.add(temp4,BorderLayout.NORTH);
//设置用来填充中间部分的3个临时面板
Panel p1=new Panel(new GridLayout(2,1,5,5));//中间分为2行
Panel p2=new Panel(new GridLayout(2,2,0,5));//上面一行为2行2列
Panel p3=new Panel(new FlowLayout());//下面一行为一个流式布局
//将label和textfield加入到上面一行的2行2列面板中
p2.add(name);
p2.add(name_txt);
p2.add(pass);
p2.add(pass_txt);
//将3个button加入到下面一行的流式布局中
p3.add(ok);
p3.add(exit);
p3.add(regedit);
//将2个面板加入到第一行和第二行
p1.add(p2);
p1.add(p3);
//再将这个面板加入到窗口的中间,并加入窗口的关闭监听
this.add(p1,BorderLayout.CENTER);
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
JOptionPane.showMessageDialog(null,"谢谢使用本系统!");
System.exit(0);
}
});
//为3个button 加入监听
ok.addActionListener(this);
exit.addActionListener(this);
regedit.addActionListener(this);
}
//3个button的监听处理全部交个这个函数处理
public void actionPerformed(ActionEvent e)
{
//通过button上的字符串来加以区分
//是点的"取消"按钮,就退出系统
if(e.getActionCommand()=="取消")
{
JOptionPane.showMessageDialog(null,"谢谢使用本系统!");
System.exit(0);
}
//是点的"确定"按钮,就进行登录的身份验证
if(e.getActionCommand()=="确定")
{
//获得用户输入的用户名和密码
String name,pass;
name=name_txt.getText().trim();
pass=pass_txt.getText().trim();
//连接数据库进行身份合法性的验证
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:bank");
Statement sm=con.createStatement();
String sql="select * from user where name='"+name+"' and password='"+pass+"'";
ResultSet rs=sm.executeQuery(sql);
//如果数据库查询后,返回的结果集里有纪录,表示有这个合法用户
if(rs.next())
{
JOptionPane.showMessageDialog(null,"登录成功!!!");
jiaoyi m=new jiaoyi(name);//构造一个jiaoyi类的对象,并把登录成功的用户名通过构造函数给它
m.setVisible(true);//显示交易窗口
this.dispose();//关掉本窗口
//this.setVisible(false);
}
else//否则就是没有这个用户
{
JOptionPane.showMessageDialog(null,"无此用户或密码不对\n请重新输入!!!");
name_txt.setText("");
pass_txt.setText("");
}
}
catch(Exception p)//发生异常则表示数据库操作失败
{
JOptionPane.showMessageDialog(null,"数据库连接失败!!!");
}
}
//是点的"注册"按钮,就注册一个新用户
if(e.getActionCommand()=="注册")
{
//获得用户输入的用户名和密码
String name,pass;
name=name_txt.getText().trim();
pass=pass_txt.getText().trim();
//如果有任何一项没有填写就直接退出该函数,并给予提示
if(name.equals("")||pass.equals(""))
{
JOptionPane.showMessageDialog(null,"必须完整填写所有的信息!!!");
return;
}
//连接数据库进行插入一个新用户的操作
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:bank");
Statement sm=con.createStatement();
//首先看看数据库中是否存在一个相同用户名的用户
String sql="select * from user where name='"+name+"'";
ResultSet rs=sm.executeQuery(sql);
if(rs.next())
{
JOptionPane.showMessageDialog(null,"该用户已经存在,请重新注册!!!");
return;
}
else//没有同名的用户就可以添加新用户了
{
//向用户表中插入一个新用户
sql="insert into user values('"+name+"','"+pass+"')";
int re=sm.executeUpdate(sql);
//向交易表中也要插入一个新用户,默认的金额为0
sql="insert into jiaoyi values('"+name+"',0)";
re=sm.executeUpdate(sql);
//如果更新操作的返回值为-1就表示操作失败,否则就是操作成功
if(re!=-1)
{
JOptionPane.showMessageDialog(null,"用户注册成功!!!\n请登录本系统");
name_txt.setText("");
pass_txt.setText("");
}
else
{
JOptionPane.showMessageDialog(null,"注册失败\n请重新输入!!!");
name_txt.setText("");
pass_txt.setText("");
}
}
}
catch(Exception p)//发生异常则表示数据库操作失败
{
JOptionPane.showMessageDialog(null,"数据库连接失败!!!");
}
}
}
public static void main(String args[])
{
login my=new login();
my.setSize(200,160);
my.setResizable(false);
my.setTitle("登录");
Image i=Toolkit.getDefaultToolkit().getImage("qq.jpg");
my.setIconImage(i);
int width,height;
width=((Toolkit.getDefaultToolkit().getScreenSize().width-my.getSize().width)/2);
height=((Toolkit.getDefaultToolkit().getScreenSize().height-my.getSize().height)/2);
my.setLocation(width,height);
my.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -