The problem lies in the BarPainter
you are using. The JFreeChart version 1.0.13 default is to use GradientBarPainter
which adds a metallic-ish look to the bar. If you want the "old" look the solution is to use the StandardBarPainter
.
final CategoryPlot plot = chart.getCategoryPlot();
((BarRenderer) plot.getRenderer()).setBarPainter(new StandardBarPainter());
That should do it.
Alternatively, if you want use JFreeChart's BarRenderer
, you could force it to use the StandardBarPainter
by calling the static method setDefaultBarPainter()
before initializing your renderer.
final CategoryPlot plot = chart.getCategoryPlot();
BarRenderer.setDefaultBarPainter(new StandardBarPainter());
((BarRenderer) plot.getRenderer()).setBarPainter(new BarPainter());
If you want more control of the chart you can always build it from the ground up instead of using ChartFactory
, but that does require a lot extra code.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…