Temporiser l'exécution d'un bout de code en attendant un événement [Résolu]

GuyJava 28 Messages postés mercredi 11 mai 2005Date d'inscription 16 novembre 2005 Dernière intervention - 12 nov. 2005 à 21:22 - Dernière réponse : jcodeunpeu 368 Messages postés mercredi 9 novembre 2005Date d'inscription 2 décembre 2006 Dernière intervention
- 16 nov. 2005 à 20:44
Bonjour,

Dans une classe (EcoutSourisEtudiant), j'invoque une autre classe (MotPasse). Cette dernière se charge de créer une fenêtre comportant deux champs texte invitant l'utilisateur du programme à saisir d'une part un login et d'autre part un mot de passe. A ces champs texte s'ajoutent deux boutons, Annuler et Valider. Naturellement, tant que la personne n'a pas saisi et validé (bouton « Valider ») les bonnes informations, ou n'a pas saisi plus simplement, la classe principale (EcoutSourisEtudiant) ne doit pas continuer l'exécution du reste de son code. Que me conseillez-vous ? Sachant que j'ai utilisé sleep, wait qui me bloquent tout le programme.
Ci-joint, un extrait du code de chacune des classes.
Merci par avance pour vous solutions.


//Extrait de la classe EcoutSourisEtudiant
private class EcoutSourisEtudiant implements ActionListener
{
public EcoutSourisEtudiant()
{
}

public void actionPerformed(ActionEvent evenement)
{
Object sourceEvt = evenement.getSource();
boolean i=false;

if(sourceEvt!=boutonFermer)
{
MotPasse motPasse=new MotPasse();

i=motPasse.passwordTrouver();
}

if(i)
{
if(sourceEvt==boutonNouveau)
{
//Activer les boutons et les champs texte
textNumEtudiant.setEnabled(true);
textPrenomEtudiant.setEnabled(true);
textNomEtudiant.setEnabled(true);
textDateNaisEtudiant.setEnabled(true);
textAdresseEtudiant.setEnabled(true);
}
}

//Extrait de la classe MotPasse
public void actionPerformed(ActionEvent evenement)
{
Object sourceEvt = evenement.getSource();

if(sourceEvt==boutonAnnuler) setVisible(false);
if(sourceEvt==boutonValider)
{
Password password=new Password();
char pass[]=passwordField.getPassword();
String chainePass=formatagePw(pass);

password.setPassword(chainePass);
if(password.verifierPassword(chainePass))
{
etatPassword=true; //Si le password est trouvé
setVisible(false);
}
else passwordField.setText("");
chainePass=null;
}
}

protected boolean passwordTrouver()
{
return(etatPassword ? true : false) ;
}
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
luuuuudooooo 64 Messages postés mardi 4 octobre 2005Date d'inscription 2 août 2006 Dernière intervention - 14 nov. 2005 à 15:18
3
Merci
Si j'ai bien compris ton problème, tu veux bloquer ton programme tant que l'utilisateur n'a pas encodé le mot de passe et le login...

J'ai 2 suggestions:

la première serait de lancer une thread qui affiche tes 2 champs textes...
Thread thread = new Thread();
thread.start();

et tu fais un thread.join(); qui obligera ton programme à attendre que ta thread soit fini...

2ème suggesion : faire une boite modale mais je ne sais pas comment se passe ton programme donc je ne peux pas dire si cette 2ème solution qui est la plus simple soit possible dans ton cas...

Merci luuuuudooooo 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de luuuuudooooo
kaloway 358 Messages postés jeudi 24 octobre 2002Date d'inscription 30 mars 2011 Dernière intervention - 13 nov. 2005 à 08:19
0
Merci
utilises plutôt un JPasswordField. c'est une boite de dialogue qui demande le mot de passe.
Commenter la réponse de kaloway
GuyJava 28 Messages postés mercredi 11 mai 2005Date d'inscription 16 novembre 2005 Dernière intervention - 13 nov. 2005 à 13:12
0
Merci
Bonjour,

Merci d'avoir répondu à mon interrogation.

Je me suis trompé en indiquant avoir utilisé un champ texte. En réalité j'ai un JPasswordField afin de saisir le mot de passe.

Cordialement,
Commenter la réponse de GuyJava
GuyJava 28 Messages postés mercredi 11 mai 2005Date d'inscription 16 novembre 2005 Dernière intervention - 15 nov. 2005 à 15:27
0
Merci
Bonjour;

Merci pour vos propositions.

J'avais déjà essayé avec les threads mais j'aboutissais à une consommation de ressources importantes au point de bloquer mon programme. Je vais renoulever l'expérience.

En ce qui concerne la solution via une fenêtre modale, je ne suis pas sûr que le programme ne continue pas. Je vais aussi expérimenter cette solution.

Cordialement,
Commenter la réponse de GuyJava
jcodeunpeu 368 Messages postés mercredi 9 novembre 2005Date d'inscription 2 décembre 2006 Dernière intervention - 15 nov. 2005 à 17:54
0
Merci
salut GuyJava,
si çà marche, fait nous voir le détail STP.
je me suis planté en envoyant le message l'autre jours, je voulais l'ajouter à la discuss et ben non ... je connais pas encore bien. en tout cas merci pour ton petit message.
si çà coince toujours ton prog n'hésite pas à faire partager, je suis sur le même genre de bins en ce moment et j'y vois un peu plus clair depuis l'autre nuit.
ciao.
Commenter la réponse de jcodeunpeu
GuyJava 28 Messages postés mercredi 11 mai 2005Date d'inscription 16 novembre 2005 Dernière intervention - 16 nov. 2005 à 20:02
0
Merci
Bonjour Jcodeunpeu,

En raison de mes activités professionnelles, j'ai laissé de coté le programme depuis quelques jours. Ce week-end, je vais m'y remettre. Pas de problème pour vous transmettre le code puisque vous travaillez sur la même problématique.

Cordialement,
Guy
Commenter la réponse de GuyJava
jcodeunpeu 368 Messages postés mercredi 9 novembre 2005Date d'inscription 2 décembre 2006 Dernière intervention - 16 nov. 2005 à 20:44
0
Merci
no problemo GuyJava
A++
Commenter la réponse de jcodeunpeu

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.