私はこれに出くわしましたが、Chart Customizer クラスを作成することで回避できました。
私の.jrxmlで:
<chart evaluationTime="Report" customizerClass="foo.Customizer" renderType="image">
私の Customizer クラスは次のようになります。
package foo;
import java.text.NumberFormat;
import java.util.Locale;
import net.sf.jasperreports.engine.JRAbstractChartCustomizer;
import net.sf.jasperreports.engine.JRChart;
import net.sf.jasperreports.engine.JRParameter;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
public class Customizer extends JRAbstractChartCustomizer {
public void customize(JFreeChart chart, JRChart jasperChart) {
CategoryPlot plot = (CategoryPlot) chart.getPlot();
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setNumberFormatOverride(
NumberFormat.getInstance((Locale)
getParameterValue(JRParameter.REPORT_LOCALE)));
}
}
ええ、そのコードは多くの仮定をしています。しかし、私は常にレポートを実行する前に明示的にロケールを設定しているので、null ではないことはわかっています。また、特定のチャートに CategoryPlot と NumberAxis があることはわかっているので、instanceof チェックは行いません。しかし、あなたはその考えを理解します。
チャールズ