Jframe authentification

[Résolu]
Signaler
Messages postés
80
Date d'inscription
jeudi 11 novembre 2010
Statut
Membre
Dernière intervention
23 février 2020
-
Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
-
bonjour tout le monde ,est ce que quelqu'un pourrait corriger mon code svp ,car ma méthode Control_Fichier(); me renvoie systématiquement false,j'ai peur que ce soit le fait que mon jpassword soit de type char[],et qu'il me faut un string,enfin j'en suis pas sure ,toujours est il que je suis bloque,le but est que je parcour mon fichier texte ,constitue d'un nom,et mdp,et s'il les trouve il m'ouvre une autre fenetre et si non ,il me met un message comme quoi mon mdp et nom ne sont pas bon
merci beaucoup

package projet;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;

import javax.swing.JPasswordField;

public class Identification extends JFrame {

private JPanel contentPane;
private JTextField jTXT_Nom;
private JLabel lblNewLabel;
private JButton btnCliquezIci;
private JLabel lblUtilisateupseudo;
private JLabel lblMotDePasse;
private JPasswordField jPWD_MDP;
private JButton btnConnection;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Identification frame = new Identification();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public Identification() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
contentPane.add(getJTXT_Nom());
contentPane.add(getLblNewLabel());
contentPane.add(getBtnCliquezIci());
contentPane.add(getLblUtilisateupseudo());
contentPane.add(getLblMotDePasse());
contentPane.add(getJPWD_MDP());
contentPane.add(getBtnConnection());
}
private JTextField getJTXT_Nom() {
if (jTXT_Nom == null) {
jTXT_Nom = new JTextField();
jTXT_Nom.setBounds(40, 35, 122, 22);
jTXT_Nom.setColumns(10);
}
return jTXT_Nom;
}
private JLabel getLblNewLabel() {
if (lblNewLabel == null) {
lblNewLabel = new JLabel("PAS ENCORE INSCRIT ? ");
lblNewLabel.setBounds(152, 157, 187, 16);
}
return lblNewLabel;
}
private JButton getBtnCliquezIci() {
if (btnCliquezIci == null) {
btnCliquezIci = new JButton("CLIQUEZ ICI");
btnCliquezIci.setBounds(155, 203, 116, 25);
btnCliquezIci.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source== btnCliquezIci){
FenCreerCompte f=new FenCreerCompte();
f.setVisible(true);


}

}
});
}
return btnCliquezIci;
}
private JLabel getLblUtilisateupseudo() {
if (lblUtilisateupseudo == null) {
lblUtilisateupseudo = new JLabel("utilisateu(pseudo)");
lblUtilisateupseudo.setBounds(50, 70, 112, 16);
}
return lblUtilisateupseudo;
}
private JLabel getLblMotDePasse() {
if (lblMotDePasse == null) {
lblMotDePasse = new JLabel(" mot de passe");
lblMotDePasse.setBounds(247, 70, 116, 16);
}
return lblMotDePasse;
}

private boolean Control_Fichier() {
boolean trouve = false;
String nomFichier="comptes.txt";
try {
// création d'un stream
FileReader fichier = new FileReader(nomFichier);
// buffer de sortie (pour accélérer les transferts dans le stream)
BufferedReader buffer = new BufferedReader(fichier);
try {
String nom;
String mdp;
String ligne = buffer.readLine();
while (ligne !null && trouve false) {
// lecture ligne par ligne
String[] tabChaine = ligne.split(";");
nom = tabChaine[0];
mdp=tabChaine[1];
// vérifier si le nom et le pseudo existent
trouve = (jTXT_Nom.getText().equals(nom) && (jPWD_MDP.getPassword().equals(mdp)));//new String(getPassword()).equals(mdp)
ligne = buffer.readLine();
}
if (trouve) {
Creation_Porte_feuille c=new Creation_Porte_feuille();
c.setVisible(true);
buffer.close();}
else JOptionPane.showMessageDialog(null, "votre pseudo ou/et votre mot de passe n'est pas correcte");



} catch (IOException e) {
e.printStackTrace();
}


} catch (FileNotFoundException e) {
e.printStackTrace();
}

return trouve;
}
private JPasswordField getJPWD_MDP() {
if (jPWD_MDP == null) {
jPWD_MDP = new JPasswordField();
jPWD_MDP.setBounds(265, 35, 86, 22);
}
return jPWD_MDP;
}
private JButton getBtnConnection() {
if (btnConnection == null) {
btnConnection = new JButton("connection");
btnConnection.setBounds(176, 119, 97, 25);
btnConnection.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

Object source = e.getSource();
if (source == btnConnection)
Control_Fichier();
}
});
}
return btnConnection;
}

}

4 réponses

Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
111
Re,

J'ai oublié d'enlever une parenthèse (bien que non nécessaire) suite à mon copié collé donc:
String fnom tabChaine[0], tnom jTXT_Nom.getText(); 
String fmdp tabChaine[1], tmdp new String(jPWD_MDP.getPassword()); 
// vérifier si le nom et le pseudo existent 
trouve = (tnom.equals(fnom) && tmdp.equals(fmdp));



-----

"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
360
Salut,

Le fichier compte.txt existe t'il ? tu devrais utiliser le chemin cpmplet : D:\...\comptes.txt

La classe String contient une méthode qui permet de transformer un char* en String :

static String	valueOf(char[] data) 
          Returns the string representation of the char array argument.
Messages postés
80
Date d'inscription
jeudi 11 novembre 2010
Statut
Membre
Dernière intervention
23 février 2020

ok j'essaye ca ce soir,le fichier txt existe bien car je l'ai teste en lecture avec un FileReader il me retourne bien le contenue .
peut etre aussi qu'un new String(getPassword()).equals(pseudo)ferait l'affaire mais je ne vois pas du tout comment integrer ca dans mon code.
merci
Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
111
Salut,


...tu devrais utiliser le chemin cpmplet : D:\...\comptes.txt...

... no comment...!


Pour la lecture tu peux utiliser la classe Scanner...
Sinon un truc du genre devrait faire l'affaire:
String fnom tabChaine[0], tnom jTXT_Nom.getText(); 
String fmdp tabChaine[1], tmdp new String(jPWD_MDP.getPassword()); 
// vérifier si le nom et le pseudo existent 
trouve = (tnom.equals(fnom) && (tmdp.equals(fmdp)));



-----

"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO