2011-07-20 4 views
3

Comment générer une info-bulle sur une souris graphique dans JFreechart? J'ai essayéJfreechart create tooltip dans chartPanel

chartPanel.setToolTipText("this is the string"); 

mais cela ne fonctionne pas. Suis-je censé faire autre chose avant? quelque chose comme

chartPanel.createToolTip(). 

J'appelle ces méthodes dans l'événement chartMouseMoved. Merci

Répondre

6

La plupart des méthodes ChartFactory incluent un paramètre boolean tooltips. Il suffit de regarder dans la source de votre usine de choix pour voir comment instancier un générateur d'info-bulle par défaut approprié pour le moteur de rendu désigné. Vous ne devriez pas avoir besoin de gérer les événements vous-même. Addenda: Comme vous utilisez createXYLineChart, une instance de StandardXYToolTipGenerator est fournie par défaut. Le DEFAULT_TOOL_TIP_FORMAT est {0}: ({1}, {2}); les symboles MessageFormat représentent les dataset, series et item, respectivement. Vous pouvez utiliser ces symboles dans votre propre générateur, comme illustré dans ce XYItemLabelGenerator, ou vous pouvez remplacer generateToolTip() pour retourner n'importe quoi.

Addendum: Voici un exemple qui montre juste le dataset:

XYPlot plot = chart.getXYPlot(); 
XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer(); 
renderer.setLegendItemToolTipGenerator(
    new StandardXYSeriesLabelGenerator("Legend {0}")); 
+0

Merci ,. J'utilise createXYLineChart et définissez la propriété tooltip sur true. Mais comment puis-je définir où et quoi montrer dans chacune des info-bulles. J'ai essayé de le faire dans le chartmouseclick et le chartMouseMoved mais cela n'a pas fonctionné. J'ai essayé d'utiliser les méthodes décrites ci-dessus. – jpo

+1

J'ai élaboré ci-dessus. – trashgod

+0

Merci. Mais ma chaîne d'info-bulle n'est en fait liée à aucune série ou jeu de données, mais à la position à laquelle la souris est et à une valeur calculée. Disons que je veux afficher les coordonnées de la souris dans une info-bulle ... – jpo