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

JavaFX Discussion :

Pb accès à des données stockées dans un LineChart.Series<Double,Double> via une classe


Sujet :

JavaFX

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur projet
    Inscrit en
    Juin 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 48
    Points : 46
    Points
    46
    Par défaut Pb accès à des données stockées dans un LineChart.Series<Double,Double> via une classe
    Bonjour,
    Je rencontre des difficultés pour accéder à des données stockées dans une série de type "LineChart".
    Ces données sont générées depuis une classe où sont définis le nom de la série et des couples de valeurs (<Double, Double>)ajoutées à la série 'series' via la méthode 'addElementToSerie'.
    Le nom des séries de données générées sont stockées dans 'listeDataSeries'. Je parviens à accéder au nom des séries générées depuis la liste 'listeDataSeries', mais je ne parviens pas à accéder aux couples de valeurs qui y sont stockées via la commande 'listeDataSeries.get(0).getSeries().getData().size()'.
    Merci par avance de m'apporter des pistes me permettant de résoudre ce problème.


    Voici le programme principal :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    package defaut;
     
    import javafx.collections.FXCollections;
    import javafx.collections.ObservableList;
     
    public class Main {
    	private static ObservableList <DataSignal> listeDataSeries = FXCollections.observableArrayList();
     
    	public static void main(String[] args) {
    		importedSerie("Test 1");
     
    		System.out.println("Nombre de valeures lues dans la série "
    				+ listeDataSeries.get(0).getNomSerie()+ " : " 
    				+ listeDataSeries.get(0).getSeries().getData().size());		
    	}
     
    	private static void importedSerie(String Name){
    		DataSignal p = new DataSignal(Name);
    		for (int i=0; i<=10; i++)
    		{
    			p.addElementToSerie((double)i,Math.random());
    		}
    		listeDataSeries.add(new DataSignal(p.getNomSerie().toString()));
     
    		System.out.println("Importation d'une nouvelle série de données : "
    				+ listeDataSeries.get(listeDataSeries.size()-1).getNomSerie());
     
    		System.out.println("Nombre de valeures importées dans la série : " + p.getSeries().getData().size());
    	}
    }
    Voici la class 'DataSignal' qui est utilisée pour stocker les séries de données :
    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
    21
    22
    23
    24
     
    package defaut;
     
    import javafx.scene.chart.LineChart;
    import javafx.scene.chart.XYChart;
    import javafx.scene.chart.XYChart.Series;
     
    public class DataSignal {
    	private String nomSerie ;
    	private LineChart.Series<Double, Double> series = new LineChart.Series<Double, Double>();
     
    	public DataSignal(String nSerie) {
    		this.setNomSerie(new String(nSerie));
    	}
     
    	public void addElementToSerie(Double time, Double AmplSignal) {
    		series.getData().add(new XYChart.Data<Double, Double>(time, AmplSignal));
    	}
     
    	public String getNomSerie() { return nomSerie; }
    	public void setNomSerie(String nomSerie) { this.nomSerie = nomSerie; }
     
    	public Series<Double, Double> getSeries() { return series; }
    }

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 854
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 854
    Points : 22 876
    Points
    22 876
    Billets dans le blog
    51
    Par défaut
    Euh, quelle est l'erreur exactement ?

    Sur les séries des graphiques de JavaFX j'ai souvent des erreurs de generics même avec le JDK8, donc je suis souvent oblige de caster les résultats.

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur projet
    Inscrit en
    Juin 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 48
    Points : 46
    Points
    46
    Par défaut
    Merci d'avoir déplacé la discussion dans la bonne section du forum.

    Je n'ai pas à proprement parler d'erreur à l'exécution du programme. Par contre, je ne parviens pas à accéder aux données qui ont été stockées dans la classe via 'addElementToSerie'. Lorsque je souhaite connaître par exemple le nombre de couples de valeurs stockées dans la série j'obtiens 0 alors qu'il devrait y avoir 11 valeurs. Idem lorsque je souhaite accéder à un couple de données en particulier, le programme se comporte comme si la série était vide.
    Je pense donc que la commande que j'utilise pour accéder aux données n'est pas la bonne, mais je ne trouve pas de solution.

    Voici ce qui s'affiche à l'exécution du programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Importation d'une nouvelle série de données : Test 1
    Nombre de valeures importées dans la série : 11
    Nombre de valeures lues dans la série Test 1 : 0
    Les deux premières lignes de code sont générées à l'exécution de la commande 'importedSerie("Test 1");' dans laquelle je cré un nouvel élément dans la classe DataSignal. On ajoute à cette classe une série de données. Pour pouvoir retrouver ces infos plus tard, je stocke le nom de la série dans 'listeDataSeries'.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    private static void importedSerie(String Name){
    		DataSignal p = new DataSignal(Name);
    		for (int i=0; i<=10; i++)
    		{
    			p.addElementToSerie((double)i,Math.random());
    		}
    		listeDataSeries.add(new DataSignal(p.getNomSerie().toString()));
     
    		System.out.println("Importation d'une nouvelle série de données : "
    				+ listeDataSeries.get(listeDataSeries.size()-1).getNomSerie());
     
    		System.out.println("Nombre de valeures importées dans la série : " + p.getSeries().getData().size());
    	}
    L'instruction 'System.out.println("Nombre de valeures importées dans la série : " + p.getSeries().getData().size());' me renseigne sur le nombre de valeurs stockées => 11
    Lorsque je souhaite accéder à nouveau à ces infos, via la commande ci-dessous, le programme m'indique en retour que le nombre d'infos stockées dans la série de données est 0 alors qu'il est censé y avoir 11 couples de valeurs.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    System.out.println("Nombre de valeures lues dans la série "
    				+ listeDataSeries.get(0).getNomSerie()+ " : " 
    				+ listeDataSeries.get(0).getSeries().getData().size());
    Il ne s'agit donc pas là plus d'un problème lié à la commande que j'utilise pour retrouver mes données plus que d'un problème lié à l'exécution du programme.

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 854
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 854
    Points : 22 876
    Points
    22 876
    Billets dans le blog
    51
    Par défaut
    Ben vi mais en même temps tu ajoute un autre DataSignal dans ta liste au lieu de celui que tu as rempli :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DataSignal p = new DataSignal(Name);
    for (int i = 0; i <= 10; i++) {
       p.addElementToSerie((double) i, Math.random());
    }
    listeDataSeries.add(new DataSignal(p.getNomSerie().toString()));
    Il faudrait plutôt faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     listeDataSeries.add(p);

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur projet
    Inscrit en
    Juin 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 48
    Points : 46
    Points
    46
    Par défaut
    Effectivement, maintenant que j'ai la solution, ça me parait évident...
    Merci beaucoup pour l'aide apportée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Génération d'un document à partir des données stockées dans la bdd
    Par kskhaled dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 27/08/2009, 23h38
  2. conception de données stockées dans des fichiers
    Par clubist dans le forum Schéma
    Réponses: 13
    Dernier message: 30/12/2008, 00h41
  3. Réponses: 5
    Dernier message: 06/02/2008, 16h01
  4. Réponses: 3
    Dernier message: 28/05/2007, 13h11
  5. Temps d'accès à des données dans un fichier
    Par TONIAPEL dans le forum Assembleur
    Réponses: 5
    Dernier message: 28/09/2003, 15h21

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