Java 在条形图上显示自定义标签颜色
我已经自定义了项目标签的位置,这样当标签不适合在条内时,标签会显示在条外,如下所示 当文本位于条内时,如何为标签赋予不同的颜色。e、 内有白色文本,外有黑色文本。我试过下面的代码,但它总是显示黑色。我希望20以白色显示,57和30以黑色文本显示 注意:这是为Jaspersoft Studio条形图编写的自定义程序类Java 在条形图上显示自定义标签颜色,java,jasper-reports,jfreechart,Java,Jasper Reports,Jfreechart,我已经自定义了项目标签的位置,这样当标签不适合在条内时,标签会显示在条外,如下所示 当文本位于条内时,如何为标签赋予不同的颜色。e、 内有白色文本,外有黑色文本。我试过下面的代码,但它总是显示黑色。我希望20以白色显示,57和30以黑色文本显示 注意:这是为Jaspersoft Studio条形图编写的自定义程序类 public class Test extends JRAbstractChartCustomizer { static class LabelGenerator ext
public class Test extends JRAbstractChartCustomizer {
static class LabelGenerator extends StandardCategoryItemLabelGenerator {
@Override
public String generateLabel(CategoryDataset dataset, int series,
int category) {
return dataset.getRowKey(series).toString();
}
}
@Override
public void customize(JFreeChart chart, JRChart jasperChart) {
CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setRangeGridlinesVisible(false);
BarRenderer renderer = (BarRenderer) plot.getRenderer();
renderer.setItemMargin(-1);
renderer.setBaseItemLabelGenerator(new LabelGenerator());
renderer.setBaseItemLabelsVisible(true);
ItemLabelPosition p = new ItemLabelPosition(ItemLabelAnchor.INSIDE12,
TextAnchor.CENTER_RIGHT, TextAnchor.CENTER_RIGHT,
-Math.PI / 2.0);
renderer.setBaseItemLabelPaint(new Color(255, 255, 255));
renderer.setBasePositiveItemLabelPosition(p);
ItemLabelPosition p2 = new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12,
TextAnchor.CENTER_LEFT, TextAnchor.CENTER_LEFT, -Math.PI / 2.0);
renderer.setBaseItemLabelPaint(new Color(0, 0, 0));
renderer.setPositiveItemLabelPositionFallback(p2);
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_90);
}
}