IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Login en Java : récupération d'un utilisateur via requête SQL


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2015
    Messages : 23
    Points : 22
    Points
    22
    Par défaut Login en Java : récupération d'un utilisateur via requête SQL
    Bonsoir , SVP j'aimerais que vous m'aidiez à créer un login en java à mon application en entrant dans le premier champ un numéro et le second le mot de pass. J'ai essayé plusieurs codes en vain.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    1. Si tu montres ton code, on pourra t'aider à le faire fonctionner
    2. Au minimum précise-nous quel environnement graphique... Desktop (Swing, JavaFX, SWT...), Web (JSP, JSF...)
    3. Un login ce n'est pas seulement un problème de GUI... quel système d'authentification as-tu derrière l'interface ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2015
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    Bonjour joel.drigo
    Voici mon code dont tu m' a demandé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
      public void connexion_1() {
     
    	AcceuilInterface acc=new AcceuilInterface();
        String num = acc.getNumCommercant_tfd().getText(); // obtention du numero saisi
        String password = acc.getPassword_tfd().getText();  // obtention du mot de pass saisi
        Connection connect =DataBaseAccess.open();
     
            try{
                state = connect.createStatement();
                String sql = "SELECT motDePass FROM Commercant WHERE  numCommercant = '"+num+"' ";
                resultSet = state.executeQuery(sql);
     
                if(resultSet.next()){
     
                String motDePass = resultSet.getString(2);
     
                if(motDePass.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);
                }
                    connect.close();
     
            }catch (SQLException e4) {
     
                System.out.println(e4.getMessage());
            }
        }

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    String motDePass = resultSet.getString(2); veut dire que tu récupères le mot de passe dans le deuxième champ du select, or il n'y a qu'un seul champ !

    Cela, dit, plutôt que de procéder ainsi, en récupérant le mot de passe et en le comparant, ce serait plus sécuris en faisant une requête du type select 1 where login='login' and motdepasse='motdepasse', et s'il y a un résultat le login est ok, sinon il est ko. Ainsi, le vrai mot de passe reste toujours côté serveur. Ensuite, il est toujours mieux de procéder avec un PreparedStatement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    try(PreparedStatement statement = connect.preparedStatement("SELECT 1 FROM Commercant WHERE  numCommercant = ? and motDePass = ?")) {
    statement.setString(1,num);
    statement.setString(2,password);
    ResultSet resultSet = statement.executeQuery();
     
    boolean loginOk = resultSet.next(); // s'il y a un résultat alors le couple num/password existe, sinon le login est ko
    }
    Attention de bien libérer tes ressources (avec close()), dans mon code fait avec try-with-resource.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2015
    Messages : 23
    Points : 22
    Points
    22
    Par défaut Login en java
    Salut joel.drigo
    J'ai essayé de corriger les erreurs tel que tu m'a montré mais je n'obtiens pas ce dont je veux.
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    public void connexion_11() {
     
    	AcceuilInterface acc=new AcceuilInterface();
        String num = acc.getNumCommercant_tfd().getText(); // ( le numéroest de type int ). Obtention du numero saisi 
        String password = acc.getPassword_tfd().getText();  // Obtention du mot de pass saisi
        Connection connect =DataBaseAccess.open();
     
            try{
                prepa_state = connect.prepareStatement("SELECT 1 FROM Commercant WHERE  numCommercant = ? and motDePass = ? ");
                prepa_state.setString(1, num);
                prepa_state.setString(2, password);
                resultSet = prepa_state.executeQuery();
                boolean loginOk = resultSet.next();
     
                if(loginOk){
     
                String motDePass = resultSet.getString(2);
     
                if(motDePass.equals(password)){
                     JOptionPane.showMessageDialog(null,"Connexion réussie ! ","Success",JOptionPane.PLAIN_MESSAGE);
                }else {
     
                    JOptionPane.showMessageDialog(null,"Mot de passe incorrect ! ","Error",1);
                }
                }else {
                	System.out.println("a");
                    JOptionPane.showMessageDialog(null,"Login incorrect ! ","Error",1);
                }
             //  connect.close();
     
            }catch (SQLException e4) {
     
                System.out.println(e4.getMessage());
            }
        }

    la console n'affiche pas d'erreur.
    Voici son affichage:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Connection éffective !
    a

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut


    1. Mais ça :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
       String motDePass = resultSet.getString(2);
       
                  if(motDePass.equals(password)){
      Il ne faut plus le faire ! Je t'ai dit que le mot de passe n'était plus récupéré par le client : le select récupère 1.

    2. Si ça affiche "a", c'est parce que tu testes avec un login/password incorrect. Tu peux afficher en console temporairement le num et mot de passe saisis pour vérifier que c'est bien les valeurs saisies que tu utilises (le problème vient peut-être de ta classe AcceuilInterface)

    3. Et tu t'es arrangé pour refaire un code où les ressources (statement/resultset) ne sont pas libérées !!!
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2015
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    Salut Joel.drigo,
    Après modifications je n'obtiens pas de résultat voulu
    j' aimerais mon code que tu jettes un coup d'oeil.
    J'aimerais que tu sois plus claire avec moi puisque je comprends pas, quand tu me parle de libérer mes réssources.
    ceci est mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    public void connexion_11() {
     
    	AcceuilInterface acc=new AcceuilInterface();
        String num = acc.getNumCommercant_tfd().getText(); // ( le numéroest de type int ). Obtention du numero saisi 
        String password = acc.getPassword_tfd().getText();  // Obtention du mot de pass saisi
        Connection connect =DataBaseAccess.open();
     
            try{
                prepa_state = connect.prepareStatement("SELECT 1 FROM Commercant WHERE  numCommercant = ? and motDePass = ? ");
                prepa_state.setString(1, num);
                prepa_state.setString(2, password);
                resultSet = prepa_state.executeQuery();
                boolean loginOk = resultSet.next();
     
                if(loginOk){
     
               //String motDePass = resultSet.getString(2);
     
                // if(motDePass.equals(password)){
                     JOptionPane.showMessageDialog(null,"Connexion réussie ! ","Success",JOptionPane.PLAIN_MESSAGE);
                /*}else {
                     
                    JOptionPane.showMessageDialog(null,"Mot de passe incorrect ! ","Error",1);
                }*/
                }else {
                	System.out.println("a");
                    JOptionPane.showMessageDialog(null,"Login incorrect ! ","Error",1);
                }
             //  connect.close();
     
            }catch (SQLException e4) {
     
                System.out.println(e4.getMessage());
            }
        }
    Et voici le code ma classe AcceuilInterface :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Conexion.addActionListener(new ActionListener() {
           	   public void actionPerformed(ActionEvent arg0) {
     
           		//numCommercant_tfd.getText();
                //password_tfd.getText();
           		 D.connexion_11();
           		//D.se_connecter2();
           		numCommercant_tfd.setText("");
                password_tfd.setText("");
     
           		}
           	});

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par mB.milen Voir le message
    Après modifications je n'obtiens pas de résultat voulu
    j' aimerais mon code que tu jettes un coup d'oeil.
    Tu ne n'as toujours pas montrer AccueilInterface (tu me montres un un bout de code (impliquant des classes ou instances que je ne connais pas (Conexion, D) et qui fait quelque chose de vraiment douteux), mais pas le code complet de la classe). Je parle de code douteux, parce que ce code, qui donc, si je le comprends bien, fait partie de la classe AccueilInterface, dont tu crées une nouvelle instance dans la méthode connexion_l1 (au passage, merci de respecter aussi les conventions de nommage), donc il est probable que les champs (nom et password) saisis dans l'interface affichée à l'écran ne soient pas les mêmes que ceux récupérés dans la méthode de connexion (qui créée donc une autre interface jamais affichée elle). Donc ceux utilisés par la connexion sont des champs qui ne contiennent pas les valeurs saisies.
    Le plus simple pour faire ce genre de chose, c'est de passer les champs en paramètre à la méthode.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public void actionPerformed(ActionEvent arg0) {
     
     
           		 D.connexion_11(numCommercant_tfd.getText(), password_tfd.getText());
     
           		}
           	}
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public void connexion_11(String num, String password ) {
         /*...*/

    Citation Envoyé par mB.milen Voir le message
    J'aimerais que tu sois plus claire avec moi puisque je comprends pas, quand tu me parle de libérer mes réssources.
    Je parle d'appeler explicitement close() sur les ressources créées quand tu ne t'en sers plus (Connection, Statement, ResultSet), ou d'utiliser la structure try-with-resources, comme dit précédemment.
    ceci est mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    public void connexion_11() {
     
    	AcceuilInterface acc=new AcceuilInterface();
        String num = acc.getNumCommercant_tfd().getText(); // ( le numéroest de type int ). Obtention du numero saisi 
        String password = acc.getPassword_tfd().getText();  // Obtention du mot de pass saisi
        Connection connect =DataBaseAccess.open();
     
            try{
                prepa_state = connect.prepareStatement("SELECT 1 FROM Commercant WHERE  numCommercant = ? and motDePass = ? ");
                prepa_state.setString(1, num);
                prepa_state.setString(2, password);
                resultSet = prepa_state.executeQuery();
                boolean loginOk = resultSet.next();
     
                if(loginOk){
     
               //String motDePass = resultSet.getString(2);
     
                // if(motDePass.equals(password)){
                     JOptionPane.showMessageDialog(null,"Connexion réussie ! ","Success",JOptionPane.PLAIN_MESSAGE);
                /*}else {
                     
                    JOptionPane.showMessageDialog(null,"Mot de passe incorrect ! ","Error",1);
                }*/
                }else {
                	System.out.println("a");
                    JOptionPane.showMessageDialog(null,"Login incorrect ! ","Error",1);
                }
             //  connect.close();
     
            }catch (SQLException e4) {
     
                System.out.println(e4.getMessage());
            }
        }
    Et voici le code ma classe AcceuilInterface :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Conexion.addActionListener(new ActionListener() {
           	   public void actionPerformed(ActionEvent arg0) {
     
           		//numCommercant_tfd.getText();
                //password_tfd.getText();
           		 D.connexion_11();
           		//D.se_connecter2();
           		numCommercant_tfd.setText("");
                password_tfd.setText("");
     
           		}
           	});
    [/QUOTE]
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2015
    Messages : 23
    Points : 22
    Points
    22
    Par défaut Login en java
    C'est toujours pareille

    Classe java:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    package DataBase ;
     
    import java.awt.*;
    import java.security.Principal;
    import java.sql.*;
    import java.util.*;
     
    import javax.swing.*;
     
    import Interface.AcceuilInterface;
    import Interface.ClientInterface;
    import Personne.*;
    import Stockage.*;
    import Stockage.*;
    import Vente.*;
    import Vente.*;
     
     
     
    public class DataBaseAccess {
    	public static Connection connect = null;
    	public static Statement state = null;
    	public static PreparedStatement prepa_state = null;
    	public static ResultSet resultSet = null;
    	private  JPanel resultPanel = new  JPanel();
     
    	//String requete = "SELECT * FROM data_base_trade.client";
     
    	public DataBaseAccess(){}
     
    	public static Connection open() {
    		String  url = "jdbc:mysql://localhost/data_base_trade";
    		String user ="root";
    		String password = "";
    		Connection connect = null;
    		try {
    			Class.forName("com.mysql.jdbc.Driver");  // Chargement de la Base de données
     
    			connect = DriverManager.getConnection(url,user,password); // Connexion de la Base de données
    			// "jdbc:mysql://localhost/data_base_trade?"+"user=root&password=");
    			state = connect.createStatement();
    			System.err.println("Connection éffective !");
     
    		} catch(Exception e) {
    			System.err.println("Driver non chargé !");
    			e.printStackTrace();
    		}
    		return connect;
    	}
     
     
    //COMMERCANT
     
    //------------------------------------------------------------------------------------	
     
    public void connexion_11(String num, String password ) {
     
    	AcceuilInterface acc=new AcceuilInterface();
         num = acc.getNumCommercant_tfd().getText(); // ( le numéroest de type int ). Obtention du numero saisi 
        password = acc.getPassword_tfd().getText();  // Obtention du mot de pass saisi
        Connection connect =DataBaseAccess.open();
     
            try{
                prepa_state = connect.prepareStatement("SELECT 1 FROM Commercant WHERE  numCommercant = ? and motDePass = ? ");
                prepa_state.setString(1, num);
                prepa_state.setString(2, password);
                resultSet = prepa_state.executeQuery();
                boolean loginOk = resultSet.next();
     
                if(loginOk){
     
                    JOptionPane.showMessageDialog(null,"Connexion réussie ! ","Success",JOptionPane.PLAIN_MESSAGE);
                     System.out.println("OK");
     
                }else {
                	System.out.println("AA");
                    JOptionPane.showMessageDialog(null,"Login incorrect ! ","Error",1);
                }
             // connect.close();
     
            }catch (SQLException e4) {
     
                System.out.println(e4.getMessage());
            }
        }
    }


    Voici ma classe AcceuilInterface :
    seule la méthode connexion_11() du bouton connexion m'interresse.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    package Interface;
     
     
    import  java.awt.*;
    import java.awt.event.*;
     
    import javax.swing.*;
     
    import com.mysql.fabric.xmlrpc.Client;
     
    import DataBase.DataBaseAccess;
    import Personne.Commercant;
    import Stockage.Produit;
    import Stockage.Stock;
    import Vente.Achat;
     
    import java.awt.event.ActionEvent;
    import java.sql.SQLException;
    import java.util.Random;
     
     
     
    @SuppressWarnings("serial")
    public  class AcceuilInterface  extends  JPanel implements  ActionListener{
    	private JPanel P1 =new JPanel();
    	private JPanel centerPane1 =new JPanel();
    	private BorderLayout bL = new BorderLayout();
    	private Color color = Color.white;
    	private  JComboBox comb1 = new  JComboBox();
    	private  JComboBox comb2 = new  JComboBox();
    	private JButton Utilisateurs=new JButton("Utilisateurs");
    	private JButton Stocker_un_produit=new JButton("Stocker un produit");
    	private JButton Conexion=new JButton("Connexion");
    	private JButton S_enregistrer=new JButton("S'enregistrer");
    	private JButton EnregistrerCom=new JButton("Enregistrer");
    	private JButton EnregistrerProd=new JButton("Enregistrer");
    	private JButton Annuler_produit=new JButton("Annuler");
    	private JButton Annuler_commerçant=new JButton("Annuler");
    	private JButton nouveau_stock=new JButton("nouveau stock");
     
     
    	private JMenu Menu1 =new JMenu("menu1");
    	private JMenuItem t1 =new JMenu("nouveau stock");
     
    	JPanel top1 = new  JPanel();
    	private JTextField numCommercant_tfd = new JTextField(10);
    	private JPasswordField password_tfd = new JPasswordField(10);
    	private JTextField nouveauCommercant = new JTextField(10);
    	private JTextField nomCommercant_tfd = new JTextField(10);
    	private JTextField adrresseComm_tfd = new JTextField(10);
    	private JTextField Ville_tfd= new JTextField(10);
    	private JTextField enterPassword_tfd = new JTextField(10);
    	private JTextField nomProduit_tfd = new JTextField(10);
    	private JTextField prix_unitaire_tfd = new JTextField(10);
    	private JTextField type_tfd = new JTextField(10);
    	private JTextField codeProduit_tfd= new JTextField(10);
    	private JTextField nomCategorie_tfd = new JTextField(10);
    	private JTextField nomStock_tfd= new JTextField(10);
     
    	private JTextField numClient_tfd = new JTextField(""); // permet d'entrer a chaque fois le numero du client volant acheter le ou les produits
    	private JLabel numClient_lab = new JLabel("Numero du client :");
     
    	private JLabel numCommercant_lab = new JLabel("Numero du Commerçant :",Label.RIGHT);
    	private JLabel password_lab = new JLabel("Mot de passe :",Label.RIGHT);
    	private JLabel lab1_2 = new JLabel("Nouveau commerçant :",Label.RIGHT);
    	private JLabel nomCommercant_lab = new JLabel("Nom du commerçant :",Label.RIGHT);
    	private JLabel lab1_4 = new JLabel("Numero du commerçant :",Label.RIGHT);
    	private JLabel adresse_lab = new JLabel("Adresse :",Label.RIGHT);
    	private JLabel Ville_lab = new JLabel("Ville :",Label.RIGHT);
    	private JLabel enterPassword_lab = new JLabel("Entrer votre mot de passe :",Label.RIGHT);
    	private JLabel lab1_8 = new JLabel("Nom du stock :",Label.RIGHT);
    	private JLabel lab1_9 = new JLabel("Nom de la catégorie :",Label.RIGHT);
    	private JLabel nomProduit_lab = new JLabel("Nom du produit :",Label.RIGHT);
    	private JLabel type_lab = new JLabel("Type :",Label.RIGHT);
    	private JLabel prix_unitaire_lab = new JLabel("Prix unitaire :",Label.RIGHT);
    	private JLabel lab1_13 = new JLabel("Code du produit :",Label.RIGHT);
    	private JLabel lab1_14 = new JLabel();
     
    	JPanel P1_1=new JPanel();
    	JPanel P1_2=new JPanel();
    	JButton plus_stock=new JButton("+"); // ce bouton renvoie a la methode creer un stock 
    	JButton plus_categorie=new JButton("+");
     
    	private JButton effectuer_achat=new JButton("Effectuer une vente");
    	private JLabel numAchat_lab = new JLabel("Numéro achat");
    	private JTextField numAchat_tfd = new JTextField(10);
    	private JLabel dateAchat_lab = new JLabel("Date de l'achat");
    	private JTextField dateAchat_tfd = new JTextField(10);
    	private JLabel Produit_lab = new JLabel("Liste des produits");
    	private JTextField listProduit_tfd = new JTextField(10);
    	private JLabel montant_lab = new JLabel("Montant de l'achat"); ;
    	private JTextField montantAchat_tfd = new JTextField(10);
    	private JButton EnregistrerA = new JButton("Enregistrer");;
    	private JButton Annuler_vendreP = new JButton("Annuler");
     
     
    	/* 
    	private JTextField nomStock = new JTextField(10);
    	private JTextField codeStock= new JTextField(10);
    	//private JTextField nomCategorie = new JTextField(10);
    	private JTextField codeCategorie= new JTextField(10);
    	private JButton    choixCategories = new JButton("choi categori");// 
    	private JLabel nomStock_lab = new JLabel("Nom du stock :",Label.RIGHT);
    	private JLabel codeStock_lab = new JLabel("Code stock :",Label.RIGHT);
    	private JLabel nomCategorie_lab = new JLabel("Nom catégorie :",Label.RIGHT);
    	private JLabel codeCategorie_lab = new JLabel("Code Catégorie :",Label.RIGHT);
    	private JLabel choixCategories_lab = new JLabel("Choix des catégories :",Label.RIGHT);
    	private JButton Enregistrer=new JButton("Enregistrer");
    	*/
     
     
     
     
    	public  AcceuilInterface(){}
     
    	public  AcceuilInterface(Color color){
    		this.color = color;
    		this.home();
    	}
     
        public void home() {
        	this.setLayout(bL);
            comb1.addItem("stock1");
        	comb1.addItem("stock2");
        	P1_1.setLayout(new  BoxLayout(P1_1, BoxLayout.LINE_AXIS));
        	P1_1.add(comb1);
        	P1_1.add(plus_stock);
     
        	comb2.addItem("categori1");
        	comb2.addItem("categori2");
        	P1_2.setLayout(new  BoxLayout(P1_2, BoxLayout.LINE_AXIS));
        	P1_2.add(comb2);
        	P1_2.add(plus_categorie);
     
            P1.setLayout(new  BoxLayout(P1, BoxLayout.LINE_AXIS));
            P1.add(Utilisateurs);
            P1.add(Stocker_un_produit);
            P1.add(effectuer_achat);
     
            DataBaseAccess D =new DataBaseAccess();
            StockInterface SI=new StockInterface();
     
            plus_stock.addActionListener(new ActionListener() {
            	public void actionPerformed(ActionEvent arg0) {	
            		JOptionPane jop1;
             		//Boîte du message d'information
             		  jop1 = new  JOptionPane();
             		 JOptionPane.showMessageDialog(null, "Si votre stock ne se trouve pas dans la liste de selection, aller à 'Stock' et créer votre stock.", "Information", JOptionPane.INFORMATION_MESSAGE);
            	}
        	});
     
           plus_categorie.addActionListener(new ActionListener() {
            	public void actionPerformed(ActionEvent arg0) {	
            		JOptionPane jop1;
             		//Boîte du message d'information
             		  jop1 = new  JOptionPane();
             		 JOptionPane.showMessageDialog(null, "Si votre catégorie ne se trouve pas dans la liste de selection, aller à 'Stock' et créer votre catégorie.", "Information", JOptionPane.INFORMATION_MESSAGE);
            	}
        	});
     
            Utilisateurs.addActionListener(new ActionListener() {
            	public void actionPerformed(ActionEvent arg0) {	
        			connecter();
            	}
        	});
     
            Stocker_un_produit.addActionListener(new ActionListener() {
        	   public void actionPerformed(ActionEvent arg0) {	
        			stockerProduit();
        		}
        	});
     
          S_enregistrer.addActionListener(new ActionListener() {
         	   public void actionPerformed(ActionEvent arg0) {	
         		  /*JOptionPane jop1;
         		//Boîte du message d'information
         		  jop1 = new  JOptionPane();
         		 JOptionPane.showMessageDialog(null, "Message informatif", "Information", JOptionPane.INFORMATION_MESSAGE);	*/
         			enregistrerCommercant();			
         		}
         	});
     
          effectuer_achat.addActionListener(new ActionListener() {
        	   public void actionPerformed(ActionEvent arg0) {	
        		  	vendre_produit();
     
        		}
        	});
     
          EnregistrerA.addActionListener(new ActionListener() {
          	   public void actionPerformed(ActionEvent arg0) {
          		   try{
    Achat A=new Achat(recuperer_id(),recuperer_date(), listProduit_tfd.getText().toString(),montantAchat_tfd.getText().toString(), numClient_tfd.getText().toString());
     
                   D.effectuer_Achat(A);
        		   listProduit_tfd.setText("");
        		   montantAchat_tfd.setText("");
        		   numClient_tfd.setText(""); 
          		   }catch(Exception e){
    					// e.printStackTrace();	
    					 JOptionPane jop1;
    			     		//Boîte du message d'information
    			     		 // jop1 = new  JOptionPane();
    			     		 JOptionPane.showMessageDialog(null, e.getMessage(), "ERREUR ! ",JOptionPane.ERROR_MESSAGE);	
          		   }
          		}
          	});
     
           EnregistrerCom.addActionListener(new ActionListener() {
           	   public void actionPerformed(ActionEvent arg0) {
           		   System.out.print("ici");
      Commercant com=new Commercant(recuperer_id(), nomCommercant_tfd.getText().toString(), adrresseComm_tfd.getText().toString(), Ville_tfd.getText().toString(), enterPassword_tfd.getText().toString());
                  D.Eneregistrer_Commercant(com);
                  nomCommercant_tfd.setText("");
                  adrresseComm_tfd.setText("");
                  Ville_tfd.setText("");
                  enterPassword_tfd.setText("");    			
           		}
           	});
     
            EnregistrerProd.addActionListener(new ActionListener() {
          	   public void actionPerformed(ActionEvent arg0) {
          		 Produit prod=new Produit(recuperer_id(), nomProduit_tfd.getText().toString(), prix_unitaire_tfd.getText().toString(), type_tfd.getText().toString());		
      		     Commercant com=new Commercant(recuperer_id(), nomCommercant_tfd.getText().toString(), adrresseComm_tfd.getText().toString(), Ville_tfd.getText().toString(), enterPassword_tfd.getText().toString());
      		     Stock stoc=new Stock(recuperer_id(), nomStock_tfd.getText().toString());
          			D.stocker_Produits(com,prod,stoc);
          		}
          	});
            Conexion.addActionListener(new ActionListener() {
           	   public void actionPerformed(ActionEvent arg0) {
     
           		D.connexion_11(numCommercant_tfd.getText(),password_tfd.getText());
     
           		numCommercant_tfd.setText("");
                password_tfd.setText("");
     
           		}
           	});
     
     
            Annuler_commerçant.addActionListener(new ActionListener(){
            	public void actionPerformed(ActionEvent arg0) {
            		connecter();
            	}
            	});
     
            Annuler_produit.addActionListener(new ActionListener(){
            	public void actionPerformed(ActionEvent arg0) {
            		//connecter();
            	}
            	});
     
           Annuler_vendreP.addActionListener(new ActionListener(){
            	public void actionPerformed(ActionEvent arg0) {
            		//effectuer_achat.dispose();
            	}
            	});
     
     
            this.add(P1, BorderLayout.NORTH);
            this.add(centerPane1, BorderLayout.CENTER);
    	}  
     
     
    public void connecter() {
    	this.invalidate();
    	centerPane1.removeAll();   //Retire  le contenu d un onglet e passe a l'autre onglet du clic. 
     
    	S_enregistrer.setBackground(Color.orange);
      	Conexion.setBackground(Color.orange);
     
    	top1.setLayout(new GridLayout(4,2,2,6));
    	top1.setPreferredSize(new Dimension(500,140));
    	top1.add(numCommercant_lab);
    	top1.add(numCommercant_tfd);
    	top1.add(password_lab);
    	top1.add(password_tfd);
    	top1.add(Conexion);
    	top1.add(S_enregistrer);
    	centerPane1.add(top1,BorderLayout.CENTER);
    	this.add(centerPane1, BorderLayout.CENTER);
    	this.validate();  //  
    	this.repaint();  // redessine.
    }
     
    public void enregistrerCommercant() {
    	this.invalidate();
    	centerPane1.removeAll();
     
    	JPanel top1_2 =  new JPanel(new GridLayout(6,5,5,20));
    	top1_2.setPreferredSize(new Dimension(500,250));
        //top1_2.add(lab1_4);
    	//top1_2.add(numCommercant);
    	top1_2.add(nomCommercant_lab);
    	top1_2.add(nomCommercant_tfd);
    	top1_2.add(adresse_lab);
    	top1_2.add(adrresseComm_tfd);
    	top1_2.add(Ville_lab);
    	top1_2.add(Ville_tfd);
    	top1_2.add(enterPassword_lab);
    	top1_2.add(enterPassword_tfd);
    	top1_2.add(	EnregistrerCom);
    	top1_2.add(Annuler_commerçant);	  
    	centerPane1.add(top1_2,BorderLayout.CENTER);
    	this.add(centerPane1,BorderLayout.CENTER);
    	//this.add(centerPane1, BorderLayout.CENTER);
    	this.validate();
    	this.repaint();
     }
     
    public void stockerProduit() {     // On doit obtenir le nom du stock et de la cat�gorie pour stocker le produit.
    	this.invalidate();
    	centerPane1.removeAll();
     
    	JPanel top1_3 =  new JPanel(new GridLayout(7,5,5,20));
    	top1_3.setPreferredSize(new Dimension(500,300));
        top1_3.add(lab1_8);
    	top1_3.add(P1_1);
    	top1_3.add(lab1_9);
    	top1_3.add(P1_2);
    	top1_3.add(nomProduit_lab);
    	top1_3.add(nomProduit_tfd);
    	top1_3.add(type_lab);
    	top1_3.add(type_tfd);
    	top1_3.add(prix_unitaire_lab);
    	top1_3.add(prix_unitaire_tfd);
    	top1_3.add(EnregistrerProd);
    	top1_3.add(Annuler_produit);
    	centerPane1.add(top1_3,BorderLayout.CENTER);	
    	this.add(centerPane1, BorderLayout.CENTER);
    	this.validate();
    	this.repaint();	
     }
    public void vendre_produit() {     // = effectuer un achat.
    	this.invalidate();
    	centerPane1.removeAll();
     
    	JPanel top1_3 =  new JPanel(new GridLayout(7,5,5,20));
    	top1_3.setPreferredSize(new Dimension(500,300));
    	//top1_3.add(dateAchat_lab);
    	//top1_3.add(dateAchat_tfd);
    	top1_3.add(Produit_lab);
    	top1_3.add(listProduit_tfd);
    	top1_3.add(montant_lab);
    	top1_3.add(montantAchat_tfd);
    	top1_3.add(numClient_lab);
    	top1_3.add(numClient_tfd);
    	top1_3.add(EnregistrerA);
    	top1_3.add(Annuler_vendreP);
    	centerPane1.add(top1_3,BorderLayout.CENTER);	
    	this.add(centerPane1, BorderLayout.CENTER);
    	this.validate();
    	this.repaint();	
     }
     
     
    public JButton getAnnuler_vendreP(){
    	return Annuler_vendreP;
    }
    public JButton getAnnuler_produit(){
    	return Annuler_produit;
    }
     
     
    public int recuperer_id(){
    	Random rand = new Random();
    	return rand.nextInt(9999);
    }
     
    public String recuperer_date(){
    String format = "dd/MM/yy H:mm:ss"; 
     
    java.text.SimpleDateFormat formater = new java.text.SimpleDateFormat( format ); 
    java.util.Date date = new java.util.Date(); 
     
    System.out.println( formater.format(date) ); 
    return  formater.format( date );
     
    }
     
    public JTextField getNumCommercant_tfd() {
    	return numCommercant_tfd;
     
    } 
    public JTextField  getPassword_tfd() {
    	return password_tfd;
    }
     
    public void actionPerformed(ActionEvent arg0) {
    	// TODO Auto-generated method stub	
    } 
     
     
    }

  10. #10
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Ce que je comprends pas c'est que dans ta classe AcceuilInterface, il y a pleins de composants, dont plusieurs passwords, et plusieurs id. On n'est obligé de se loguer à chaque action ? Et dans la même interface que le reste. En plus, je vois qu'il y a des méthodes qui créé des panels, et ajoute ces champs dedans. C'est une sacré usine à gaz, et il va me falloir du temps pour comprendre comment ça marche (comment c'est censé marcher). Je pensais que AccueilInterface avait 2 champs : un login et un password, tout simplement.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2015
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    Salut
    le bouton mis pour le login est le bouton 'Conexion.'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    /CODE]Conexion.addActionListener(new ActionListener() {
           	   public void actionPerformed(ActionEvent arg0) {
     
           		D.connexion_11(numCommercant_tfd.getText(),password_tfd.getText());
     
           		numCommercant_tfd.setText("");
                password_tfd.setText("");
     
           		}
           	});
    ça c'est la méthode du formulaire de l'authentification :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    public void connecter() {
    	this.invalidate();
    	centerPane1.removeAll();   //Retire  le contenu d un onglet e passe a l'autre onglet du clic. 
     
    	S_enregistrer.setBackground(Color.orange);
      	Conexion.setBackground(Color.orange);
     
    	top1.setLayout(new GridLayout(4,2,2,6));
    	top1.setPreferredSize(new Dimension(500,140));
    	top1.add(numCommercant_lab);
    	top1.add(numCommercant_tfd);
    	top1.add(password_lab);
    	top1.add(password_tfd);
    	top1.add(Conexion);
    	top1.add(S_enregistrer);
    	centerPane1.add(top1,BorderLayout.CENTER);
    	this.add(centerPane1, BorderLayout.CENTER);
    	this.validate();  //  
    	this.repaint();  // redessine.
    }

Discussions similaires

  1. Recalculer l'index via requête sql ?
    Par Stephane_br dans le forum Développement
    Réponses: 8
    Dernier message: 05/02/2014, 14h42
  2. Réponses: 12
    Dernier message: 19/08/2012, 14h31
  3. [AC-2007] Intégrer champ renseigné par utilisateur à une requête SQL
    Par Zaza91280 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 08/05/2010, 12h18
  4. Réponses: 3
    Dernier message: 09/10/2009, 20h20
  5. VBA : Insérer champs via requête SQL
    Par lesguignols dans le forum VBA Access
    Réponses: 8
    Dernier message: 31/12/2008, 12h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo