JFreeChart: Как я могу получить точный экземпляр XYDataItem, на который указывает перекрестие? - PullRequest
1 голос
/ 28 декабря 2011

Я хочу получить точный экземпляр XYDataItem, когда щелчок мыши блокирует перекрестие в ближайшей точке данных, как показано на рисунке ниже.

The crosshair now locks on a data point

Теперь я могу получить позицию XY перекрестия, когда событие щелчка мыши происходит с ChartMouseListener, но может быть нехорошо получить XYDataItem в соответствии со значением X и Y.От события мыши, другая вещь ChartEntity, но она основана на том, где щелкает мышь, а не на том месте, где фиксируется перекрестие.

Итак ... Есть ли лучший способ разрешить мне это сделать?1012 * Или
, если вы хотите, чтобы каждый раз, когда перекрестие блокировалось на нем, показывалось много дополнительных данных, связанных с точкой данных, как вы будете это делать?(Теперь я расширяю XYDataItem и добавляю новое поле в подкласс, чтобы я мог либо поместить информацию непосредственно в него, либо добавить идентификатор, который может помочь мне получить дополнительные данные из списка данных, и поэтому я надеюсь, чтоперекрестие может дать мне точный элемент данных).

1 Ответ

2 голосов
/ 28 декабря 2011

Добавить ChartProgressListener.По завершении рисования спросите у XYPlot значения домена и диапазона перекрестия.Найдите соответствующее значение в вашем XYDataset.

. Используйте всплывающую подсказку для отображения данных на вашем графике, как показано здесь .Вы можете переопределить generateLabel(), чтобы добавить свои собственные данные.В качестве альтернативы, обновите модель внешнего компонента, как показано в различных перекрестных демонстрациях .

...