Authentification Login/mot de passe avec interface graphique

mano23 - 29 avril 2013 à 20:05
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 4 juin 2014 à 13:31
Salut les gars,

Je suis entrain de faire une interface graphique pour une authentification login/password mais je n'arrive pas à comparer le login et le mot de passe saisis
par l'utilisateur (interface) et ceux enregistrés dans la base de données MySQL.

Voici mes codes:
Classe Authentification
package projetJava;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.JOptionPane;
import javax.swing.JTextField;

class Authentification implements ActionListener {

//Objet pour se connecter à la base de données
public Base b = new Base();
public Connection conn;

static JTextField user, mdp;
    
//Objet PreparedStatement
    PreparedStatement statement = null;
    //Objet ResultSet
    ResultSet resultat = null;

public Authentification() {

}

public void actionPerformed(ActionEvent ae)
{

String login = user.getText();
        String password = mdp.getText();
        
        b.ConnexionBD();
conn = b.getConnect();

//Manipulation
try {
//Création de la requête
statement conn.prepareStatement("SELECT password FROM utilisateurs WHERE login'"+login+"'");

resultat = statement.executeQuery();

if(resultat.next())
{
String motDePasse = resultat.getString(1);
if(motDePasse.equals(password))
{
JOptionPane.showMessageDialog(null,"Connexion réussie ! ","Success",JOptionPane.PLAIN_MESSAGE);
}
else {
JOptionPane.showMessageDialog(null,"Mot de passe incorrect ! ","Error",1);
}
}
else {
JOptionPane.showMessageDialog(null,"Login incorrect ! ","Error",1);
}

//Récupération de la requête dans une variable
resultat = statement.executeQuery();

conn.close();
}
catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}

Classe InterfaceConnexion
package projetJava;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
import javax.swing.border.TitledBorder;

public class InterfaceConnexion extends JFrame {
/**
 * 
 */
private static final long serialVersionUID = 1L;

JPanel panelHaut, panelBas, panelGauche, panelDroite, panelCentre, panelConnexion;

JLabel login = new JLabel("Login");
JLabel password = new JLabel("Mot de passe");
JButton valider = new JButton("Valider");
JButton annuler = new JButton("Annuler");

//static JTextField user, mdp;
    
    public InterfaceConnexion() {

super();

/*Initialisation du JFrame*/
this.setSize (new Dimension (600,400));
//On ne pourra pas agrandir la fenetre intitulée.
this.setResizable (false);

/*Récupération du ContentPane*/
Container contenu = this.getContentPane();

/*Création des JPanel avec leur Layout Manager*/
panelHaut = new JPanel(new GridLayout (1,1));
panelBas = new JPanel(new GridLayout (1,1));
panelGauche = new JPanel(new GridLayout (1,1));
panelDroite = new JPanel(new GridLayout (1,1));
panelCentre = new JPanel(new GridLayout (0,1));
panelConnexion = new JPanel();

/*Ajout des panneaux au ContentPane*/
    contenu.add(panelHaut, BorderLayout.NORTH);
    contenu.add(panelBas, BorderLayout.SOUTH);
    contenu.add(panelGauche, BorderLayout.EAST);
    contenu.add(panelDroite, BorderLayout.WEST);
    contenu.add(panelCentre, BorderLayout.CENTER);

    /*Ajout du formulaire de connexion à panelCentre*/
    panelCentre.setBorder(new TitledBorder("Connexion"));
    panelCentre.add(panelConnexion);
    panelCentre.add(login);
    panelCentre.add(new JTextField());
    panelCentre.add(password);          
    panelCentre.add(new JTextField());
    panelCentre.add(valider);
        valider.addActionListener(new ValiderListener());
    panelCentre.add(annuler);
    
    /*Ajout du texte de panelConnexion*/
    panelConnexion.add(new JLabel ("CONNEXION"));
}

}

class ValiderListener extends JFrame implements ActionListener {

/**
 * 
 */
private static final long serialVersionUID = 1L;

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
try {

ActionEvent a = null;

Authentification au = new Authentification();

au.actionPerformed(a);		
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}

Classe Base
package projetJava;

import java.sql.Connection;
import java.sql.DriverManager;

class Base {

//Variable pour la connexion	
public Connection conn;

public void ConnexionBD()
{
try
{
Class.forName("com.mysql.jdbc.Driver");
}
catch(Exception ex)
{ 
System.out.print("Erreur de Chargement");
System.exit(0);
}
try
{
String url = "jdbc:mysql://localhost:3306/gpp";
String user = "root";
String passwd = "";
conn = DriverManager.getConnection(url, user, passwd);
}
catch(Exception ex)
{
System.out.print("Erreur de connexion à la BD");
}
}

public Connection getConnect()
{
return conn;
}

public void DeconnexionBD()
{
try {
conn.close();
}
catch(Exception ex) {
System.out.print("Déconnexion impossible");
}
}
}

Classe Test
package projetJava;

public class Test {

public Test() {
// TODO Auto-generated constructor stub
}

/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub

InterfaceConnexion  ic = new InterfaceConnexion();
ic.setTitle("Gestion des Paiements d'une pharmacie");
    ic.setVisible(true);
}

}
A voir également:

3 réponses

J'ai cette erreur au niveau de la méthode actionPerformed de la classe Authentification:
java.lang.NullPointerException
at projetJava.Authentification.actionPerformed(Authentification.java:33)
at projetJava.ValiderListener.actionPerformed(InterfaceConnexion.java:91)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
10
Rejoignez-nous