Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在条形图上显示自定义标签颜色_Java_Jasper Reports_Jfreechart - Fatal编程技术网

Java 在条形图上显示自定义标签颜色

Java 在条形图上显示自定义标签颜色,java,jasper-reports,jfreechart,Java,Jasper Reports,Jfreechart,我已经自定义了项目标签的位置,这样当标签不适合在条内时,标签会显示在条外,如下所示 当文本位于条内时,如何为标签赋予不同的颜色。e、 内有白色文本,外有黑色文本。我试过下面的代码,但它总是显示黑色。我希望20以白色显示,57和30以黑色文本显示 注意:这是为Jaspersoft Studio条形图编写的自定义程序类 public class Test extends JRAbstractChartCustomizer { static class LabelGenerator ext

我已经自定义了项目标签的位置,这样当标签不适合在条内时,标签会显示在条外,如下所示

当文本位于条内时,如何为标签赋予不同的颜色。e、 内有白色文本,外有黑色文本。我试过下面的代码,但它总是显示黑色。我希望20以白色显示,57和30以黑色文本显示

注意:这是为Jaspersoft Studio条形图编写的自定义程序类

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);
    }
}