⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 login.java

📁 该压缩文件中共包含16个非常实用的java学习实例
💻 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 + -