JFreeChart создать всплывающую подсказку в ChartPanel - PullRequest
3 голосов
/ 20 июля 2011

Как я могу сгенерировать всплывающую подсказку при наведении курсора на JFreeChart?Я попробовал это:

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

, но это не работает.Я должен сделать что-то еще раньше?Примерно так:

chartPanel.createToolTip().

Я вызываю эти методы в событии chartMouseMoved.

1 Ответ

6 голосов
/ 21 июля 2011

Большинство ChartFactory методов включают параметр boolean tooltips. Просто посмотрите в исходном коде выбранную вами фабрику, чтобы увидеть, как создать генератор всплывающей подсказки по умолчанию, подходящий для назначенного средства визуализации. Вам не нужно обрабатывать события самостоятельно.

Добавление: поскольку вы используете createXYLineChart, экземпляр StandardXYToolTipGenerator предоставляется по умолчанию. DEFAULT_TOOL_TIP_FORMAT - это {0}: ({1}, {2}); символы MessageFormat представляют dataset, series и item соответственно. Вы можете использовать эти символы в своем собственном генераторе, как показано в этом XYItemLabelGenerator, или вы можете переопределить generateToolTip(), чтобы вообще вернуть что-либо.

Приложение: Вот пример, который показывает только dataset:

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