JFreeChart : obtenir des données de la source de valeur sur clic de souris
J'ai un JFreeChart instance qui affiche les processus de l'état de la mémoire, initialisé de la façon suivante:
m_data = new TimeSeriesCollection();
TimeSeries vmsize = new TimeSeries("VMSize");
TimeSeries resident = new TimeSeries("Resisdent");
TimeSeries shared = new TimeSeries("Shared memory");
TimeSeries code = new TimeSeries("Code");
TimeSeries data = new TimeSeries("Data");
m_data.addSeries(vmsize);
m_data.addSeries(resident);
m_data.addSeries(shared);
m_data.addSeries(code);
m_data.addSeries(data);
JFreeChart chart = ChartFactory.createTimeSeriesChart("Memory usage", "Time", "Size", m_data, true, true, false);
m_chart = new ChartPanel(chart);
Plus tard, j'ai ajouter des valeurs à chaque TimeSeries dans le TimeSeriesCollection. Je voudrais en quelque sorte de savoir - lorsque l'utilisateur clique sur le Graphique - soit ce temps associé à cette columm, ou mieux encore - ce qui est l'indice de la valeur.
J'ai regardé la JFreeChart et ChartMouseListener classes, mais je ne pouvais pas comprendre comment faire (aussi à la documentation de JFreeChart est fâcheusement rares, je pense qu'ils essaient de pousser les gens à acheter leur guide du développeur).
OriginalL'auteur Omry Yadan | 2010-07-22
Vous devez vous connecter pour publier un commentaire.
si vous cliquez sur mort sur l'élément, l'événement.getEntity() renvoie XYItem et puis à partir de là à partir de
toutefois, au cas où vous ne cliquez pas sur l'élément lui-même, mais votre viseur est réglé sur auto lock sur les données, dans de tels cas, la croix sera en déplacement le plus proche de l'élément, mais étant donné que l'élément n'a pas été cliqué, vous ne serez pas en mesure d'obtenir la XYItem et donc vous ne pouvez pas connaître la série et de l'index de l'élément, pour résoudre ce problème, il y a ce code ci-dessous, il devrait être mis dans la clause catch alors que le code mentionné ci-dessus doit être en essayer clause
d'abord définir une fonction qui prendra en croix de la valeur du domaine et de la gamme et aussi Xydataset, cette fonction retourne intérieure d'un objet de classe que les groupes index de l'élément et de la série de l'indice de
comment l'utiliser?
Je pense que sa ChartChangelistner ... quelque chose comme ça
OriginalL'auteur user482963
hmm devrait fonctionner, si vous remplacez les deux dernières lignes par quelque chose comme ceci:
vous pouvez utiliser ChartEvent.getEntity() pour obtenir la forme (bar,d'une ligne) en vertu de la souris jfree.org/jfreechart/api/javadoc/org/jfree/chart/entity/...
+1, fonctionne comme un champion!
Oui, j'ai vu le getShape() appel d'API déjà. ce que je suis après les données de ce shapre représente. la forme elle-même dépend du zoom et de la fenêtre d'affichage du graphique.
OriginalL'auteur fasseg