Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1479 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Actualisation d'un graph toutes les X sec

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Actualisation d'un graph toutes les X sec

n°1278930
XK
Posté le 08-01-2006 à 01:07:03  profilanswer
 

Bonjour
 
J'ai fais un applet qui génère un graph à partir de nombres récupérés sur une page web.
Pour ajouter des points sur le graph je dois cliquer sur un bouton "actualiser". J'aimerais faire en sorte que ça s'actualise automatiquement avec un temps définis par un menu déroulant (ex : 1s, 2s, 5s...).
Voici le code source de mon code exécuté lorsque je fais actualiser :

Code :
  1. public void actionPerformed(final ActionEvent e)
  2.     {
  3.         if (e.getActionCommand().equals("UPDATE" ))
  4.         {
  5.          final Millisecond now = new Millisecond();
  6.             System.out.println("Now = " + now.toString());
  7.             System.out.println("URL = " + urlField.getText());
  8.   try
  9.   {
  10.    URL url = new URL(urlField.getText());
  11.    getData(url);
  12.       for (int x=0; x<point.length; x++)
  13.       {
  14.        System.out.println("(debug) Valeur "+(x+1)+" = "+point[x]+"\n" );
  15.       }
  16.   }
  17.   catch (MalformedURLException e1)
  18.   {
  19.    System.out.println("URL non conforme!" );
  20.   }
  21.   catch (IOException e1)
  22.   {
  23.    System.out.println("Erreur!" );
  24.   }
  25.        
  26.             for (int i = 0; i < SUBPLOT_COUNT; i++) {
  27.                 this.lastValue[i] = point[i];
  28.                 this.datasets[i].getSeries(0).add(new Millisecond(), this.lastValue[i]);     
  29.             }
  30.         }
  31.     }


A votre avis comment le pourrais faire pour que lorsque je clique sur le bouton "start" le code s'exécute en boucle tous les X sec et que lorsque je clique sur "stop" il s'arrête :??:
Merci beaucoup pour votre aide :hello:


Message édité par XK le 08-01-2006 à 01:12:50
mood
Publicité
Posté le 08-01-2006 à 01:07:03  profilanswer
 

n°1279056
trevor
laissez la vie vous étonner...
Posté le 08-01-2006 à 13:17:01  profilanswer
 

faut utiliser un timer (implements Runnable) pour ça
va voir du côté des classes Timer et TimerTask (j'ai déjà utilisé, c'est assez facile)


Message édité par trevor le 08-01-2006 à 13:19:14

---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
n°1279109
XK
Posté le 08-01-2006 à 14:50:04  profilanswer
 

Merci beaucoup, j'ai fais un thread et ça fonctionne parfairement :)
Un petit lien quand même :
http://java.sun.com/docs/books/tut [...] l/threads/

n°1279130
trevor
laissez la vie vous étonner...
Posté le 08-01-2006 à 15:23:53  profilanswer
 

bah un timer se base sur les threads pour faire ces actions (logique puisqu'il faut lancer le timer), donc je ne doute pas que ta solution puisse marcher
disons que tu as du certainement te "taper" le "stop" à la main, j'entends par là, ne pas utiliser la méthode stop() de la classe Thread, et gérer l'arrêt du thread avec test sur un attribut


---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
n°1279182
XK
Posté le 08-01-2006 à 18:12:38  profilanswer
 

En gros voilà comment j'ai fais :

Code :
  1. public void actionPerformed(final ActionEvent e)
  2.     {
  3.         if (e.getActionCommand().equals("START" ))
  4.         {
  5.          traceChart = new Thread(this);
  6.          traceChart.start();
  7.         }
  8.         if (e.getActionCommand().equals("STOP" ))
  9.         {
  10.          traceChart = null;
  11.         }
  12.     }


Donc avec les boutons START et STOP on démarre/arrête le thread "traceChart".

Code :
  1. public void run() {
  2.         Thread me = Thread.currentThread();
  3.         while (traceChart == me) {
  4.             try {
  5.                 Thread.currentThread().sleep(/*Valeur fréquence update*/);
  6.             } catch (InterruptedException e) {
  7.             }
  8.             updateChart();
  9.         }
  10.     }


Avec ce code je mets le thread en pause pendant la valeur déterminée par le slider, donc le thread s'éxécute toutes les X ms. :)

n°1279201
trevor
laissez la vie vous étonner...
Posté le 08-01-2006 à 19:09:35  profilanswer
 

le traceChart est un peu violent je trouve, je serai plutot passé par une méthode de ta classe traceChart du genre

Code :
  1. pubic void stop() {
  2.   this.actif = false;
  3. }


 
avec comme modif de run()

Code :
  1. ...
  2.   while (this.actif) {
  3.   ...


 
et du coup un

Code :
  1. traceChart.stop()

à la place du

Code :
  1. = null


---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Actualisation d'un graph toutes les X sec

 

Sujets relatifs
[VBA EXCEL 03] Probleme de mise en forme auto du graphinternet explorer et avertissement actualisation d'un favori
[java] debutant besoin d'aide pour interface graphactualisation d'une page
Configurer filtre directshow directement depuis le graph?Fermeture d'une fenêtre entraînant actualisation d'une autre
Problem Graph Np complet, casse tetecomment sauver un graph excel sous format jpg ?
[Resolu]creer plusieurs graph a partir du meme tableau excel?Problème d'actualisation
Plus de sujets relatifs à : Actualisation d'un graph toutes les X sec


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR