Jframe authentification [Résolu]

Messages postés
78
Date d'inscription
jeudi 11 novembre 2010
Dernière intervention
13 février 2015
- - Dernière réponse : Twinuts
Messages postés
5304
Date d'inscription
dimanche 4 mai 2003
Dernière intervention
11 décembre 2018
- 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;
}

}
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
5304
Date d'inscription
dimanche 4 mai 2003
Dernière intervention
11 décembre 2018
3
Merci
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

Merci Twinuts 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de Twinuts
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
0
Merci
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.
Commenter la réponse de cs_Julien39
Messages postés
78
Date d'inscription
jeudi 11 novembre 2010
Dernière intervention
13 février 2015
0
Merci
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
Commenter la réponse de laurent2403
Messages postés
5304
Date d'inscription
dimanche 4 mai 2003
Dernière intervention
11 décembre 2018
0
Merci
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
Commenter la réponse de Twinuts

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.