Получение ошибки класса настройщика в случае использования BarChart: BarRenderer не может быть приведен к net.sf.jasperreports.engine.JRChartCustomizer
Я пытаюсь использовать класс настройщика BarRenderer из диаграмм jFree для настройки гистограммы. Я добавил банку в путь к классам и добавил класс в раздел классов настройщика свойств диаграммы в виде org.jfree.chart.renderer.category..BarRenderer и я продолжаю получать ошибку:
net.sf.jasperreports.engine.JRRuntimeException: Could not create chart customizer instance.
Caused by: java.lang.ClassCastException: org.jfree.chart.renderer.category.BarRenderer cannot be cast to net.sf.jasperreports.engine.JRChartCustomizer
Есть ли что-то, что я пропустил или забыл сделать здесь, любая помощь, чтобы запустить это будет высоко ценится
1 ответ
Настройщик и средство визуализации являются двумя разными животными: средство визуализации отвечает за рисование части диаграммы, а настройщик позволяет вам настраивать ее.
Что вам нужно сделать, это создать класс, который расширяет JRChartCustomizer
и в методе настройки установите BarRenderer
:
public class MyCustomizer extends JRAbstractChartCustomizer {
public void customize(JFreeChart chart, JRChart jasperChart) {
if (chart.getPlot() instanceof CategoryPlot) {
CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setRenderer(new BarRenderer());
}
}
}
Затем в вашем дизайне вам нужно установить настройщик на MyCustomizer
и убедитесь, что ваш класс находится в classpath