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

📄 login.java

📁 培训时做的学生管理系统.基于J2SE平台开发
💻 JAVA
字号:
package cn.com.studentsystem.login;

import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

import cn.com.util.DBConnection;

public class Login {
	
	 JTextField  jpf1;//创建用户名文本框
	
	 JPasswordField  jpf2;//创建密码的密码框
	 
	 JCheckBox jcb1;//创建记住用户名的复选框
	 
	 JCheckBox jcb2;//创建记住密码的复选框
	 
	 JOptionPane  jop = new JOptionPane();//消息提示框
	 
	 JFrame jf;//主登陆框
	 
	 String tem_user = null ;//存放暂时的用户名
	 
	 String tem_password = null;//存放暂时的密码
	 
	 FileInputStream f ;
	 
	 FileOutputStream f1;
	
	
	 public Login(){
		
		 init();
	
	 }
	
	/**
	 * 初始化Login类
	 */
	 public void init(){
		 
		 final Properties p = new Properties();//创建一个属性文件
			
		 try {
				f = new FileInputStream("my.properties");//创建一个输入流对象来加载属性文件
				
				p.load(f);//加载属性文件
				
				f.close();//关闭输入流
				
		 } catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				System.out.println("You have some mistakes in the IO file!");
				}
		
		jf = new JFrame("用户登录");//建立主登录框
		
		jf.setSize(350,360);//设置主登录框的大小
		
		jf.setLocationRelativeTo(null);//设置主登录框输出在屏幕中央
		
		Container con = jf.getContentPane();//得到主登录框的内容窗口
        
		Color color = new Color(96,142,240);//创建一个颜色对象
       
		con.setBackground(color);//设置主登录框的背景颜色
//      con.setBackground(Color.black);
        
        GridLayout grid1 = new GridLayout(3,1,15,15);//创建一个网格布局
		
        GridLayout grid2 = new GridLayout(1,3,25,25);//创建另一个网格布局
		
        FlowLayout flow = new FlowLayout(FlowLayout.CENTER,15,13);//创建一个流式布局
		
		FirstJPanel jp1 = new FirstJPanel();//创建一个带背景图片的窗口
		
		/**
		 * 创建多个空白窗口
		 */
		JPanel jp2 = new JPanel();
		JPanel jp3 = new JPanel();
		JPanel jp4 = new JPanel();
		JPanel jp5 = new JPanel();
		JPanel jp6 = new JPanel();
		
		/**
		 * 设置各个窗口的背景颜色
		 */
		jp2.setBackground(color);
		jp3.setBackground(color);
		jp4.setBackground(color);
		jp5.setBackground(color);
		jp6.setBackground(color);
		
//		jp2.setBackground(Color.black);
//		jp3.setBackground(Color.black);
//		jp4.setBackground(Color.black);
//		jp5.setBackground(Color.black);
//		jp6.setBackground(Color.black);
		
		/**
		 * 设置各个窗口的布局格式
		 */
		jp2.setLayout(grid1);
		jp3.setLayout(grid1);
		jp4.setLayout(grid1);
		jp5.setLayout(grid2);
		jp6.setLayout(flow);
		
		jf.setLayout(grid1);
		
		/**
		 * 设置密码和用户名的标签
		 */
		JLabel jl1 = new JLabel("用户名",JLabel.CENTER);
		JLabel jl2 = new JLabel("密  码",JLabel.CENTER);
        
		/**
		 *建立两个文本框用于输入用户名和密码
		 */
		 jpf1 = new JTextField(20);
		 jpf1.setText(p.getProperty("tem_user"));
		 jpf2 = new JPasswordField(20);	
		 jpf2.setText(p.getProperty("tem_password"));

		/**
		 * 创建框架图标
		 */
		ImageIcon i = new ImageIcon("image//title.png");
		jf.setIconImage(i.getImage());
		
		/**
		 * 创建按钮
		 */
		JButton jb1 = new JButton("用户注册");
		JButton jb2 = new JButton("密码提示");
		JButton jb5 = new JButton("网络连接");
		
		/**
		 * 创建复选框
		 */
		 jcb1 = new JCheckBox("记住用户");
		 jcb2 = new JCheckBox("记住密码");
		
        /**
         * 设置复选框的背景颜色
         */
		jcb1.setBackground(color);
		jcb2.setBackground(color);
		
//		jcb1.setBackground(Color.black);
//		jcb2.setBackground(Color.black);

	
		JButton jb3 = new JButton("登陆");//创建登陆按钮
		JButton jb4 = new JButton("取消");//创建取消按钮
		JButton jb6 = new JButton("重置");//创建重置按钮

		/**
		 * 创建登陆说明的标签
		 */
		JLabel jl4 = new JLabel("欢迎登陆中心软件教育网站                   www.zxedu.com",JLabel.CENTER);
		
		/**
		 * 使按钮的图标和边界间距为0
	 	 */
		jb1.setMargin(new Insets(0,0,0,0));
		jb2.setMargin(new Insets(0,0,0,0));
		jb3.setMargin(new Insets(0,0,0,0));
		jb4.setMargin(new Insets(0,0,0,0));
		jb5.setMargin(new Insets(0,0,0,0));
		jb6.setMargin(new Insets(0,0,0,0));
	    
		
		jp2.add(jl1);//添加用户名标签到jp2面板
		jp2.add(jl2);//添加密码标签到jp2面板
		jp2.add(jcb1);//添加记住用户名复选框到jp2面板
		
		jp3.add(jpf1);//添加存放用户名的文本框到jp3面板
		jp3.add(jpf2);//添加存放密码的文本框到jp3面板
		jp3.add(jcb2);//添加记住密码复选框到jp3面板
		
		jp4.add(jb1);//添加用户注册按钮到jp4面板
		jp4.add(jb2);//添加密码提示按钮到jp4面板
		jp4.add(jb5);//添加网络连接按钮到jp4面板
		
	    /**
	     * 添加3个面板到面板jp5
	     */
		jp5.add(jp2);
		jp5.add(jp3);
		jp5.add(jp4);
		
		jp6.add(jb3);//添加登陆按钮到面板jp6
		jp6.add(jb4);//添加取消按钮到面板jp6
		jp6.add(jb6);//添加重置按钮到面板jp6
		jp6.add(jl4);//添加登陆说明标签到面板jp6
		
		/**
		 * 添加各个面板到登陆框中
		 */
		jf.add(jp1);
		jf.add(jp5);
		jf.add(jp6);
		
		
	/**
       * 此类为登陆框的监听器内部类
       * @author Administrator
       *
       */
     class LoginAction implements ActionListener{

      /**
       * 实现登陆框内部组件的监听功能
       */
      public void actionPerformed(ActionEvent arg0) {

	  if(arg0.getActionCommand().equals("用户注册")){
		
		Regist r = new Regist();//创建一个注册窗口
		
	  }else if(arg0.getActionCommand().equals("密码提示")){
		
		Connection con = DBConnection.getConnectionOracle();
		String password_instruction = null;
	  try {
		PreparedStatement ps = con.prepareStatement("select instruction from regist where username = ?");
		ps.setString(1, jpf1.getText().toString());
		ResultSet rs = ps.executeQuery();
		
		while(rs.next()){
			
			password_instruction = (String)rs.getObject(1);
		
		}
		
		} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	  }
					
	  jop.showMessageDialog(null,password_instruction,"密码提示",JOptionPane.WARNING_MESSAGE);
	
    	}else if(arg0.getActionCommand().equals("网络连接")){
	
		try {
					
		 Runtime.getRuntime().exec("cmd /c start www.baidu.com");//连接到百度首页
					
        } catch (IOException e) {
	// TODO Auto-generated catch block
	
	   e.printStackTrace();}
	
	  }else  if(arg0.getActionCommand().equals("取消")){
		 
		 System.exit(0);
		
	  }else if(arg0.getActionCommand().equals("重置")){
		
		jpf1.setText(null);
		jpf2.setText(null);
		
	 }else if(arg0.getActionCommand().equals("登陆")){
		
		
		 try {
			f1 = new FileOutputStream("my.properties");
		} catch (FileNotFoundException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		 if(jcb1.isSelected()){
		  	  
	      	 p.setProperty("tem_user", jpf1.getText().toString());
			 try {
				p.store(f1, "tem_user");
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	      	 
	      }else {
	      	
	    	  p.setProperty("tem_user","");
	    	  try {
					p.store(f1, "tem_user");
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
	       }
	       
	     if(jcb2.isSelected()){
	      	 
	    	  p.setProperty("tem_password", jpf2.getText().toString());
	       
	    	  try {
					p.store(f1, "tem_password");
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
	       }
	       else {
	    	   
	    	   p.setProperty("tem_password", "");
	       
	    	   try {
					p.store(f1, "tem_password");
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
	       }
	       
	       Connection con = DBConnection.getConnectionOracle();
	       PreparedStatement ps = null;
	       String user = null;
		   String pass = null;
		try {
		    ps = con.prepareStatement("select username,password from regist where username = ?");
			ps.setString(1, jpf1.getText().toString());
		    ResultSet rs = null;
			rs = ps.executeQuery();
			
		    while(rs.next()){
				 user = rs.getString(1) ;
				 pass = rs.getString(2) ;
			   }
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	  
	     if(jpf1.getText().toString().equals(user)&&jpf2.getText().toString().equals(pass)){
	    	  
	    	   jop.showMessageDialog(null, "登陆成功","登录提示" , JOptionPane.INFORMATION_MESSAGE);
	    	   cn.com.frame.Test t = new cn.com.frame.Test();
	    	   jf.dispose();
	     }else{
	    	   
	    	   jop.showMessageDialog(null, "登录失败,请输入正确的用户名和密码","登录提示" , JOptionPane.ERROR_MESSAGE);
	       }
	     
	   
	       
	      
	   }	
	
  }
	}
  
     	
     LoginAction login_action = new LoginAction();//建立一个内部监听器类对象
		/**
		 * 将用户注册按钮,密码提示按钮,网络连接按钮在监听器类中注册
		 */
        jb1.addActionListener(login_action);
		jb2.addActionListener(login_action);
		jb3.addActionListener(login_action);
		jb4.addActionListener(login_action);
		jb5.addActionListener(login_action);
		jb6.addActionListener(login_action);
        jcb1.addActionListener(login_action);
        jcb2.addActionListener(login_action);
        jpf1.addActionListener(login_action);
        jpf2.addActionListener(login_action);
        
        
     
      
		
		jf.setResizable(false);//设置登陆框的窗口大小为不可变
		jf.setVisible(true);//设置登陆框为可见
		
		
		
	}
	


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -