Attente java
Fermé
cedlapinte
Messages postés
12
Date d'inscription
samedi 16 janvier 2010
Statut
Membre
Dernière intervention
7 octobre 2016
-
16 janv. 2010 à 16:33
cedlapinte Messages postés 12 Date d'inscription samedi 16 janvier 2010 Statut Membre Dernière intervention 7 octobre 2016 - 18 janv. 2010 à 19:32
cedlapinte Messages postés 12 Date d'inscription samedi 16 janvier 2010 Statut Membre Dernière intervention 7 octobre 2016 - 18 janv. 2010 à 19:32
Bonjour,
j'ai un petit probleme, je veux realiser une interface java et j'aimerais que lorsque j'appuie sur un bouton le message "j'ai faim" s affiche pendant 3 secondes et apres le message devient "je n'est plus faim". J'ai utiliser :
try{
Thread.sleep(3000);
}catch(InterruptedException e){}
Le probleme est que à l affichage il y a le message "je n'est plus faim" qui s affiche apres 3 secondes mais avant je n'est rien qui s'affiche. Je ne vois pas quoi changer
j'ai un petit probleme, je veux realiser une interface java et j'aimerais que lorsque j'appuie sur un bouton le message "j'ai faim" s affiche pendant 3 secondes et apres le message devient "je n'est plus faim". J'ai utiliser :
try{
Thread.sleep(3000);
}catch(InterruptedException e){}
Le probleme est que à l affichage il y a le message "je n'est plus faim" qui s affiche apres 3 secondes mais avant je n'est rien qui s'affiche. Je ne vois pas quoi changer
A voir également:
- Attente java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Messenger en attente de réseau ✓ - Forum Facebook
- Java décompiler - Télécharger - Langages
11 réponses
BadGuitarist
Messages postés
367
Date d'inscription
dimanche 12 octobre 2008
Statut
Membre
Dernière intervention
20 octobre 2013
27
16 janv. 2010 à 17:15
16 janv. 2010 à 17:15
Bonjour,
Et si tu inverses les instructions :
Affichage "J'ai faim"
Thread.sleep(3000);
Affichage "Je n'ai plus faim"
Thread.sleep(3000);
Affichage "" // effacer la zone d'infos
Et si tu inverses les instructions :
Affichage "J'ai faim"
Thread.sleep(3000);
Affichage "Je n'ai plus faim"
Thread.sleep(3000);
Affichage "" // effacer la zone d'infos
cedlapinte
Messages postés
12
Date d'inscription
samedi 16 janvier 2010
Statut
Membre
Dernière intervention
7 octobre 2016
16 janv. 2010 à 18:14
16 janv. 2010 à 18:14
Pour etre plus precis voila ce que jai fait :
public void actionPerformed(ActionEvent evt) {
Object source = evt.getSource();
if(source == boutonMiseEnMarche) {
labelEtat.setText("<html><center>J'ai faim</center></html>");
try{
Thread.sleep(3000);
}
catch(InterruptedException e){}
labelEtat.setText("Je n'est plus faim");
}
public void actionPerformed(ActionEvent evt) {
Object source = evt.getSource();
if(source == boutonMiseEnMarche) {
labelEtat.setText("<html><center>J'ai faim</center></html>");
try{
Thread.sleep(3000);
}
catch(InterruptedException e){}
labelEtat.setText("Je n'est plus faim");
}
BadGuitarist
Messages postés
367
Date d'inscription
dimanche 12 octobre 2008
Statut
Membre
Dernière intervention
20 octobre 2013
27
16 janv. 2010 à 20:42
16 janv. 2010 à 20:42
Ton code m'étonne car tu sembles mélanger 2 technologies.
Excuse-moi pour les remarques et questions que je fais : je ne cherche qu'à comprendre :
D'un côté :
De l'autre, pour affecter le libellé de ton bouton, tu utilises une technologie Web HTML
Je pense que tu es dans un environnement Web : J2EE mais je n'en suis pas sûr.
Peux-tu confirmer ou infirmer, STP.
Excuse-moi pour les remarques et questions que je fais : je ne cherche qu'à comprendre :
D'un côté :
actionPerformed(ActionEvent evt) <=> tu utilises une technologie AWT/SWING
De l'autre, pour affecter le libellé de ton bouton, tu utilises une technologie Web HTML
labelEtat.setText("<html><center>J'ai faim</center></html>");
Je pense que tu es dans un environnement Web : J2EE mais je n'en suis pas sûr.
Peux-tu confirmer ou infirmer, STP.
cedlapinte
Messages postés
12
Date d'inscription
samedi 16 janvier 2010
Statut
Membre
Dernière intervention
7 octobre 2016
16 janv. 2010 à 22:04
16 janv. 2010 à 22:04
tu a raison je suis dans un environnement Web : J2EE ; mais le java n'est pas mon fort.
En ce qui concerne : "labelEtat.setText("<html><center>J'ai faim</center></html>");" j'ai utilisée cette methode pour manipuler facilement le texte dans le label (pouvoir ecrire sur plusieurs lignes, centrer le texte) j'ai trouvée cette methode plus simple
En ce qui concerne : "labelEtat.setText("<html><center>J'ai faim</center></html>");" j'ai utilisée cette methode pour manipuler facilement le texte dans le label (pouvoir ecrire sur plusieurs lignes, centrer le texte) j'ai trouvée cette methode plus simple
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
BadGuitarist
Messages postés
367
Date d'inscription
dimanche 12 octobre 2008
Statut
Membre
Dernière intervention
20 octobre 2013
27
16 janv. 2010 à 23:32
16 janv. 2010 à 23:32
En J2EE, tu pouvais passer par Javascript pour modifier lelabel du bouton sur l'évènement onclick().
Ensuite pour changer de message au bout de 3 secondes, tu fais appel à la fonction Javascript window.setTimeout(uneFonctionAAppeler, 3000)
Voici un exemple (que je viens de faire et que j'ai testé) pour te montrer ce qu'il est possible de faire et qui ressemble (si j'ai bien compris) à ce que tu veux faire :
Ensuite pour changer de message au bout de 3 secondes, tu fais appel à la fonction Javascript window.setTimeout(uneFonctionAAppeler, 3000)
Voici un exemple (que je viens de faire et que j'ai testé) pour te montrer ce qu'il est possible de faire et qui ressemble (si j'ai bien compris) à ce que tu veux faire :
<html> <head> <script language="javascript" type="text/javascript"> function changerLabelBouton1() { document.getElementById("idBouton1").value="Je n ai plus faim"; window.setTimeout(changerLabel2Bouton1, 3000); } function changerLabel2Bouton1() { document.getElementById("idBouton1").value="Je digère ..."; } </script> </head> <body> <input type="button" value="J ai faim" id="idBouton1" onclick="changerLabelBouton1()" ></input> <body> </html>
cedlapinte
Messages postés
12
Date d'inscription
samedi 16 janvier 2010
Statut
Membre
Dernière intervention
7 octobre 2016
17 janv. 2010 à 13:54
17 janv. 2010 à 13:54
dans mon programme je n'utilise pas le langage HTML (a part pour remplacer des System.out.println("Blablabla")). Moi je voudrais l'équivalent de ton : window.setTimeout(changerLabel2Bouton1, 3000); en langage JAVA
BadGuitarist
Messages postés
367
Date d'inscription
dimanche 12 octobre 2008
Statut
Membre
Dernière intervention
20 octobre 2013
27
17 janv. 2010 à 14:03
17 janv. 2010 à 14:03
Bonjour,
Recherche cela : Thread.
Recherche cela : Thread.
cedlapinte
Messages postés
12
Date d'inscription
samedi 16 janvier 2010
Statut
Membre
Dernière intervention
7 octobre 2016
17 janv. 2010 à 14:04
17 janv. 2010 à 14:04
j'ai deja essayer et rien n'a marche je ne comprend pas trop le threads
BadGuitarist
Messages postés
367
Date d'inscription
dimanche 12 octobre 2008
Statut
Membre
Dernière intervention
20 octobre 2013
27
17 janv. 2010 à 14:11
17 janv. 2010 à 14:11
Si tu veux implémenter ta solution en n'utilisant que Java, il faudra bien passer par les Thread.
Donne-moi ce que tu as fais pour implémenter cette gestion de libellé (version avec les Thread) pour que je jette un coup d'oeil.
Donne-moi ce que tu as fais pour implémenter cette gestion de libellé (version avec les Thread) pour que je jette un coup d'oeil.
cedlapinte
Messages postés
12
Date d'inscription
samedi 16 janvier 2010
Statut
Membre
Dernière intervention
7 octobre 2016
17 janv. 2010 à 15:08
17 janv. 2010 à 15:08
Je te laisse la partie de code concernée par mon probleme. Avan ce code j'ai créer la fenetre contenant kes boutons et labels de mon interface graphique.
public void actionPerformed(ActionEvent evt) {
Object source = evt.getSource();
if(source == boutonMiseEnMarche) {
boutonMiseATable.setEnabled(true); // Rend le boutonMiseATable actif
boutonSortieDeTable.setEnabled(true); // Rend le boutonSortieDeTable actif
boutonMiseATable.addActionListener(this); // Met le boutonMiseATable en écoute
boutonSortieDeTable.addActionListener(this); // Met le boutonSortieDeTable en ecoute
/* je veux que les 2 lignes de texte suivantes s'affichent pendant 3 secondes lorsque j'appuie sur le boutonMiseEnMarche*/
labelCompteRendu.setText("<html><center>Bonjour je suis Bill</center></html>");
labelEtat.setText("<html><center>Je suis dans mon état normal <br> Je n'est pas faim, je ne pleure pas</center></html>");
/* Apres ces 3 secondes je veux faire labelEtat.setText("<html><center>J'ai faim</center></html>"); qui s'affiche pendant 2 secondes*/
boutonMiseEnMarche.setEnabled(false); // Rend le boutonMiseEnMarche inactif
}
else if(source == boutonMiseATable) {
labelEtat.setText("Bill est à table");
}
else if(source == boutonSortieDeTable) {
labelEtat.setText("Bill n'est plus à table");
}
}
/* Je pense qu'il faut utiliser la partie suivante mais je nesais pas comment*/
/* public class Temporisation extends Thread {
int TempsDAutonomie;
public Temporisation (int temps) {
this.TempsDAutonomie = temps;
}
private void Attente(int i) throws InterruptedException {
this.TempsDAutonomie = i;
this.start ();
this.wait(i);
}
}*/
public void actionPerformed(ActionEvent evt) {
Object source = evt.getSource();
if(source == boutonMiseEnMarche) {
boutonMiseATable.setEnabled(true); // Rend le boutonMiseATable actif
boutonSortieDeTable.setEnabled(true); // Rend le boutonSortieDeTable actif
boutonMiseATable.addActionListener(this); // Met le boutonMiseATable en écoute
boutonSortieDeTable.addActionListener(this); // Met le boutonSortieDeTable en ecoute
/* je veux que les 2 lignes de texte suivantes s'affichent pendant 3 secondes lorsque j'appuie sur le boutonMiseEnMarche*/
labelCompteRendu.setText("<html><center>Bonjour je suis Bill</center></html>");
labelEtat.setText("<html><center>Je suis dans mon état normal <br> Je n'est pas faim, je ne pleure pas</center></html>");
/* Apres ces 3 secondes je veux faire labelEtat.setText("<html><center>J'ai faim</center></html>"); qui s'affiche pendant 2 secondes*/
boutonMiseEnMarche.setEnabled(false); // Rend le boutonMiseEnMarche inactif
}
else if(source == boutonMiseATable) {
labelEtat.setText("Bill est à table");
}
else if(source == boutonSortieDeTable) {
labelEtat.setText("Bill n'est plus à table");
}
}
/* Je pense qu'il faut utiliser la partie suivante mais je nesais pas comment*/
/* public class Temporisation extends Thread {
int TempsDAutonomie;
public Temporisation (int temps) {
this.TempsDAutonomie = temps;
}
private void Attente(int i) throws InterruptedException {
this.TempsDAutonomie = i;
this.start ();
this.wait(i);
}
}*/
cedlapinte
Messages postés
12
Date d'inscription
samedi 16 janvier 2010
Statut
Membre
Dernière intervention
7 octobre 2016
18 janv. 2010 à 19:32
18 janv. 2010 à 19:32
j'ai essayé thread.sleep(); mais sa n'a pas marché