Dynamic tool tip generator - Jfreechart

亡梦爱人 提交于 2019-12-19 10:42:35

问题


I am generating a dynamic chart (XYLineChart) using jFreeChart and I have a field which is not included in the dataset. The field is generated dynamically. I want to include that in my tooltip. Is there any possibility I can do it ?

Here is the flow of the program:

Create Chart using an empty dataset.

Set chartPanel. (I guess here is the place where we define the TooltipGenerator).

Receive dynamic data from socket.

Add data to the dataset. ( Here is the only place where I have the data which I need to have in my tooltip text).

Refresh Chart.


回答1:


The name to be displayed is not included anywhere in the dataset.

As shown here for a custom XYItemLabelGenerator, you can extend a suitable dataset, e.g. AbstractXYDataset, to include the required information and access it from your implementation of XYToolTipGenerator.




回答2:


You don't have to care about data added dynamically to the dataset. Tooltips are created on the fly using the data from the dataset. The individual XYToolTipGenerator just needs to be assigned to the renderer instance.

As an example, start with the TimeSeriesChartDemo1 class from JFreeChart, and add an individual XYToolTipGenerator as shown below.

XYItemRenderer r = plot.getRenderer();
…    
// define your own tooltip generator   
StandardXYToolTipGenerator tooltipGenerator = new StandardXYToolTipGenerator()
{
    @Override
    public String generateToolTip(XYDataset dataset, int series, int item)
    {
        return "Series " + series + " Item: " + item + " Value: "
            + dataset.getXValue(series, item) + ";"
            + dataset.getYValue(series, item);
    }
};
// and assign it to the renderer
r.setBaseToolTipGenerator(tooltipGenerator);


来源:https://stackoverflow.com/questions/31279389/dynamic-tool-tip-generator-jfreechart

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!