Jframe authentification

Résolu
laurent2403 Messages postés 80 Date d'inscription jeudi 11 novembre 2010 Statut Membre Dernière intervention 23 février 2020 - 3 oct. 2012 à 09:35
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 6 oct. 2012 à 17:44
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

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
6 oct. 2012 à 17:44
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
3
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
3 oct. 2012 à 10:26
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.
0
laurent2403 Messages postés 80 Date d'inscription jeudi 11 novembre 2010 Statut Membre Dernière intervention 23 février 2020
3 oct. 2012 à 20:29
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
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
6 oct. 2012 à 17:42
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
0
Rejoignez-nous