Package Login

Source Code of Login.LoginPane$LoginAL

package Login;

import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.sql.ResultSet;
import java.util.ArrayList;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.Timer;
import User.UserMain;

public class LoginPane extends JPanel implements ActionListener, MouseListener, MouseMotionListener {
  private CardLayout cards;
  private int curFrame;
  private JPanel parent;
  private BufferedImage bg;
  private Button back, login;
  private Timer time;
  private DBHandler db;
  private User tempUser;
  private JTextField username;
  private JPasswordField pass;
  private ArrayList<User> users;
  private boolean corPass, corUsrName, started;
  private JFrame frame;
 
  public LoginPane(JPanel parent, int n, CardLayout cards, String filename, JFrame frame){
    this.frame=frame;
    this.cards=cards;
    this.curFrame=n;
    this.parent=parent;
    this.setLayout(null);
   
    corPass=false;
    corUsrName=false;
    tempUser= new User("","","");
    db = new DBHandler(3306, "nisodb", "root", "p@ssword");
    back =  new Button("images/back.png", "images/back2.png", "images/back2a.png");
    login = new Button("images/l"+n+".png", "images/l"+n+"a.png", "images/l"+n+".png");
   
    try {
      this.bg=ImageIO.read(new File(filename));
    } catch (IOException e) {
      // TODO Auto-generated catch block
      System.out.print("Image not found");
      e.printStackTrace();
    }
    time = new Timer(300, this);
    this.addMouseListener(this);
    this.addMouseMotionListener(this);
   
    JLabel usrname = new JLabel("Username:");
    JLabel passwrd = new JLabel("Password:");
    username = new JTextField();
    pass =new JPasswordField();
   
   
    Font font = new Font("Calibri", Font.PLAIN, 20);
    usrname.setBounds(240, 115, 165, 27);
      passwrd.setBounds(240, 175, 165, 27);
   
      usrname.setFont(font);
      passwrd.setFont(font);
     
      username.setBounds(250, 145, 190, 27);
        pass.setBounds(250, 205, 190, 27);
       
        LoginAL lAL = new LoginAL();
        username.addActionListener(lAL);
        username.addKeyListener(lAL);
        pass.addActionListener(lAL);
    pass.addKeyListener(lAL);
        this.add(usrname);
    this.add(passwrd);
    this.add(username);
    this.add(pass);
    this.getUsers();
  }
 
  @Override
  public void actionPerformed(ActionEvent e) {
    repaint();
  }
  public void paint(Graphics g){
    super.paint(g);
    Graphics2D g2D = (Graphics2D)g;

    time.start();
    g2D.drawImage(bg, 25, 60, null);
    g2D.drawImage(back.getCurImg(), 10, 10, null);
    g2D.drawImage(login.getCurImg(), 324, 308, null);
   
    if((!corPass||!corUsrName)&&started){
      Font font = new Font("Calibri", Font.PLAIN, 20);
      g2D.setColor(Color.RED);
      g2D.setFont(font);
      g2D.drawString("   *Error: Wrong username",228, 50);
      g2D.drawString("              or password",228, 72);
     
    }
  }
  
  public  ArrayList<User> getUsers(){
   
    users = new ArrayList<User>();
    ResultSet RS;
   
    try {
      RS=db.MySQLSelect("SELECT * from UserAccount");
      switch (curFrame){
        case 3: RS=db.MySQLSelect("SELECT * from UserAccount where Usertype=\"BookKeeper\"");
            break;
        case 4:  RS=db.MySQLSelect("SELECT * from UserAccount where Usertype=\"Owner\"");
            break;
        case 5: RS=db.MySQLSelect("SELECT * from UserAccount where Usertype=\"Manager\"");
            break;
      }
     

      while(RS.next()){
        User temp = new User("", "", "");
        temp.setUserName(RS.getString("username"));
        temp.setPassword(RS.getString("password"));
        temp.setUserType(RS.getString("usertype"));
        users.add(temp);
     
        RS.close();
     
    }catch(Exception ex){
     
    }
    return users;
  }
 
  public boolean checkUserName(String username, ArrayList<User> dbUsers){
   
    for(int i=0; i<users.size();i++){
      if(dbUsers.get(i).getUserName().equalsIgnoreCase(username))
          return true;
     
    }
    return false;
  }
 
 
  public boolean checkPassword(String password,  ArrayList<User> dbPass){
   
    for(int i=0; i<users.size();i++){
      if(dbPass.get(i).getPassword().equals(password))
        return true;
      }
    return false;
  }
 
  public void login(){

    corPass=checkUserName(tempUser.getUserName(), users);
    corUsrName=checkPassword(tempUser.getPassword(), users);
    started=true;
   
    if(corPass&&corUsrName){
      new UserMain(db, curFrame, tempUser.getUserName(), users, frame, parent, cards);
   
      frame.dispose();
    }
  }
   
  @Override
  public void mouseDragged(MouseEvent m) {
    // TODO Auto-generated method stub
   
  }

  @Override
  public void mouseMoved(MouseEvent m) {
    // TODO Auto-generated method stub
    if (m.getX() >= 12&& m.getX()<=102&&m.getY()>=11&&m.getY()<=42){//within the boundaries of back
      back.setCurImg(1);
     
    }
    else if (m.getX() >= 325&& m.getX()<=460&&m.getY()>=311&&m.getY()<=351){//within the boundaries of login
      login.setCurImg(1);
    }
    else{
      back.setCurImg(0);
      login.setCurImg(0);
    }
  }

  @Override
  public void mouseClicked(MouseEvent m) {
    // TODO Auto-generated method stub
    if (m.getX() >= 12&& m.getX()<=102&&m.getY()>=11&&m.getY()<=42){//within the boundaries of back
      switch(curFrame){
     
      case 3:  cards.show(parent, curFrame-1+"");break;
      case 4:  cards.show(parent, curFrame-2+"");break;
      case 5:  cards.show(parent, curFrame-3+"");break;
     
      }
      back.setCurImg(0);
      }
    else if (m.getX() >= 325&& m.getX()<=460&&m.getY()>=311&&m.getY()<=351){//within the boundaries of login
      tempUser.setPassword(pass.getText());
      tempUser.setUserName(username.getText());
     
      login();
    }
  }
  @Override
  public void mouseEntered(MouseEvent m) {
    // TODO Auto-generated method stub
   
  }

  @Override
  public void mouseExited(MouseEvent m) {
    // TODO Auto-generated method stub
   
  }

  @Override
  public void mousePressed(MouseEvent m) {
    // TODO Auto-generated method stub
   
  }

  @Override
  public void mouseReleased(MouseEvent m) {
    // TODO Auto-generated method stub
   
  }
  class LoginAL implements ActionListener, KeyListener{

    @Override
    public void actionPerformed(ActionEvent key) {
      // TODO Auto-generated method stub
      tempUser.setPassword(pass.getText());
      tempUser.setUserName(username.getText());
     
    }

    @Override
    public void keyPressed(KeyEvent key) {
      // TODO Auto-generated method stub

      if (key.getSource()==username&&(key.getKeyCode()==KeyEvent.VK_ENTER||key.getKeyCode()==KeyEvent.VK_TAB)){
        pass.requestFocus();
      }
      else if(key.getSource()==pass&&(key.getKeyCode()==KeyEvent.VK_ENTER||key.getKeyCode()==KeyEvent.VK_TAB)){
        tempUser.setUserName(username.getText());
        tempUser.setPassword(pass.getText());
       
        login();
      }
    }

    @Override
    public void keyReleased(KeyEvent key) {
      // TODO Auto-generated method stub
     
    }

    @Override
    public void keyTyped(KeyEvent key) {
      // TODO Auto-generated method stub
     
    }
  }
 

TOP

Related Classes of Login.LoginPane$LoginAL

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.