Получение ошибки класса настройщика в случае использования 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

Другие вопросы по тегам