IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

[Debutant(e)]chrono, effacement


Sujet :

API standards et tierces Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 25
    Points : 11
    Points
    11
    Par défaut [Debutant(e)]chrono, effacement
    bonjour à tous.
    je cherche un moyen de lancer un chrono au départ d'un calcul afin d'afficher le temps mis pour effectuer ce calcul.
    aussi, comment peut-on effacer une fenetre?
    merci beaucoup pour vos éventuelles réponses et pour ce forum que je consulte fréquemment





    [Modéré par Didier]
    Ajout de tag dans le titre
    Lire les règles du forum : Règles du forum Java

  2. #2
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    pour lancer un chrono, tu peux faire comme ça (c'est pas vraiment un chrono mais ça permet de faire un calcul d'intervalle de temps)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    long reference = System.currentTimeMillis();
     
    // faire ton traitement 
     
    long elapsedTimeInMillis = System.currentTimeMillis()-reference;
    pour 'effacer' une fenêtre, ce n'est pas directement possible en java, et cela peut encore dépendre du composant que tu utilise (swing ou awt ?)

    si c'est du swing, essaie un getContentPane().removeAll() suivi d'un validate() , ça doit marcher



  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par Pill_S
    pour lancer un chrono, tu peux faire comme ça (c'est pas vraiment un chrono mais ça permet de faire un calcul d'intervalle de temps)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    long reference = System.currentTimeMillis();
     
    // faire ton traitement 
     
    long elapsedTimeInMillis = System.currentTimeMillis()-reference;
    pour 'effacer' une fenêtre, ce n'est pas directement possible en java, et cela peut encore dépendre du composant que tu utilise (swing ou awt ?)

    si c'est du swing, essaie un getContentPane().removeAll() suivi d'un validate() , ça doit marcher


    merci beaucoup pour le chrono ça marche nickel et c'est tout à fait ce qu'il me fallait

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 40
    Points : 34
    Points
    34
    Par défaut
    je te conseille de vérifier ton chrono avec un vrai chrono à la main, tu vas être surpris, cf mon message laissé hier.

  5. #5
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    je te conseille de vérifier ton chrono avec un vrai chrono à la main, tu vas être surpris
    pk ? ça marche très bien, si tu veux en tester un vrai basé sur ce principe je te conseille le lien suivant:

    http://technicum.no-ip.com/projetsjava/projet_chronoswing.jnlp

    et tu verras que cette méthode est précise à la milliseconde...


  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    en effet, testé sur +/- 10 minutes ça marche tres bien
    je cherchais une méthode pour effacer l'écran car je fais un affichage périodique de resultat pendant que le prog boucle, et plutot que tout s'affiche en colonne, je prefererai que chaque nouveau resultat s'affiche à la place du précédent. donc si il y a une solution autre que de tout effacer je prend

  7. #7
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par x-ben
    ... donc si il y a une solution autre que de tout effacer je prend
    mais comme je te l'ai dis, cela dépend des composants que tu utilises !

    on n'efface pas de la même manière un JTextArea qu'un JPanel...

    dans certaines situations, un simple repaint() suffit, alors que dans d'autres il faut utiliser une ou plusieurs méthodes !

    si des fois, laisse un bout de code


  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    bah imagine un sop"hello" qui boucle en gros.
    (apres il y a éventuellement un tableau ècrit en texte a rafraichir mais bon c'est moins important)

  9. #9
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    :

    (rien compris )

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    lol, non c'est moi qui ne sait pas m'exprimer.

    imagine simplement un prog qui fait

    for (i=0;i<3;i++){
    System.out.print("salut");
    }

    le prog que j'ai fais est un peu plus compliqué que ça mais bon le principe d'affichage est identique.
    le prog va faire
    salut
    salut
    salut
    salut

    mais je prefererai qu'il fasse juste
    salut

    c'est a dire que les 4 salut s'affiche les uns sur les autres.

  11. #11
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    ah oki, bin dans ce cas là je te conseille d'utiliser un composant, par exemple un JLabel, et lorsque tu veux lui changer son contenu tu appelle simplement sa méthode setText("dutext")

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    le chrono montre ses limites quand je fais ça:

    if((elapsedTimeInMillis)%1000==0) { System.out.println blabla...

    je voudrais un affichage toutes les secondes, mais il y a une bonne dizaine de cycle de calcul qui se passent en - d'1 milliseconde , alors la ligne s'affiche plusieurs fois.

  13. #13
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    le chrono montre ses limites quand je fais ça:
    t'es sur que c'est pas plutôt le programmeur qui montre ses limites ?

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    lol sans doute qu'il y a un peu de ça

  15. #15
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    en fait il faut un peu détourner le problème dans ces cas-là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    public void m(){
     
      int curSec = 0; // seconde courant
      int oldCurSec = curSec; // mémo
      long ref = System.currentTimeMillis();
     
      while(uneCondition){
        curSec = (System.currentTimeMillis()-ref)/1000;
     
        if(curSec != oldCurSec) {
          Sytem.out.println("blabla");
          oldCurSec = curSec;
        }
     
        // ...
     
      }
     
    }

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    c'est tj le mème prob, entre 2 boucles du while, il ne s'est pas passé 1 milliseconde, donc le curSec n'est pas != du oldCurSec

  17. #17
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    tu as testé au moins avant de dire que ça marche pas ?

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    public void M(){
     
            int curSec = 0; // seconde courant
            int oldCurSec = curSec; // mémo
            long ref = System.currentTimeMillis(); 
            boolean t=this.Test();
            while(!t){
                     curSec = (System.currentTimeMillis()-ref)/1000;     <--------ICI
                     blablabla
                     if(curSec != oldCurSec){
                                             System.out.println (blabla-etpatati-etpatata);
                                             oldCurSec = curSec;
                                            }
                     t=this.Test();
    		 }
     
    	}
    voila comment tourne le truc. si tu trouve l'erreur car moi je vois pas

    il y a juste qu'il me dit un 'possible lost of precision' la où j'indique lors de la compilation

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    bon j'ai tout essayé!! sauf la bonne façon bien sur
    j'en peux pu
    il doit y avoir un truc avec la methode currentTimeMilli que j'ai pas pigé

  20. #20
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    ah bah désolé il manquait juste un casting dans mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // ...
    curSec =(int) ((System.currentTimeMillis()-ref)/1000);
    // ...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [debutant]Effacer une partie d'un dessin
    Par erkenbrand dans le forum Windows Forms
    Réponses: 6
    Dernier message: 09/05/2008, 19h17
  2. [Debutant]Effacer des lignes dans un fichier
    Par smutmutant2003 dans le forum Linux
    Réponses: 13
    Dernier message: 10/10/2007, 22h49
  3. [debutant] Effacer écran
    Par bdaboah dans le forum C
    Réponses: 7
    Dernier message: 16/09/2005, 10h17
  4. Comment effacer des Items d'un TListView ?
    Par boyerf dans le forum Composants VCL
    Réponses: 4
    Dernier message: 11/11/2002, 11h19
  5. [VBA Excel] Effacer rapidement une feuille
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2002, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo