2015-07-07 3 views
1

Я создаю динамическую диаграмму (XYLineChart) с помощью jFreeChart, и у меня есть поле, которое не входит в набор данных. Поле генерируется динамически. Я хочу включить это в свою подсказку. Есть ли возможность, я могу это сделать?Dynamic tool tip generator - Jfreechart

Вот поток программы:

Создать таблицу с помощью пустого набора данных.

Set chartPanel. (Я предполагаю, что здесь место, где мы определяем TooltipGenerator).

Получить динамические данные из гнезда.

Добавить данные в набор данных. (Вот единственное место, где у меня есть данные, которые мне нужны в тексте подсказки).

Обновить карту.

ответ

1

Вам не нужно заботиться о динамически добавляемых данных к набору данных. Подсказки создаются «на лету», используя данные из набора данных. Отдельному XYToolTipGenerator просто нужно назначить экземпляр средства визуализации.

В качестве примера, начните с класса TimeSeriesChartDemo1 от JFreeChart и добавьте пользователя XYToolTipGenerator, как показано ниже.

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); 
+0

Также рассмотрите возможность использования значений «MessageFormat» [здесь] (http://stackoverflow.com/a/3158958/230513). – trashgod

+0

@trashgod: Это проблема, с которой я столкнулся. Имя, которое будет отображаться, не содержится нигде в наборе данных. В предложенном примере названия компании включены в легенду. У меня нет такого дизайна в моем проекте. – chrisrhyno2003

+0

@Uli: Извините, но этот подход не сработает. Я хочу передать определенные данные во всплывающую подсказку (если это возможно). – chrisrhyno2003

1

имя, которое будет отображаться не включен в любом месте в наборе данных.

Как показано here для пользовательского XYItemLabelGenerator, вы можете продлить подходящий набор данных, например, AbstractXYDataset, чтобы включить необходимую информацию и получить доступ к ней из вашей реализации XYToolTipGenerator.

Смежные вопросы