有条件地定位标签文本

Position label text on conditional basis

在上面的条形图中,对于灰色条,我希望标签文本(阈值 50%)显示在灰色条内。由于以下代码,目前它显示在外面

renderer.setBaseItemLabelPaint(Color.red);
renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(
                    ItemLabelAnchor.OUTSIDE3, TextAnchor.CENTER_LEFT,
                    TextAnchor.CENTER, 0.0));

如何将上述条件仅应用于第二个红色条而不应用于其他条

这是我的数据集

cat Category       Value
0                  0.000000
1   You 10%        0.100000
2   Threshold 50%  0.500000

这可以通过覆盖 AbstractCategoryItemRenderer java class.

getPositiveItemLabelPosition 方法来实现
@Override
    public ItemLabelPosition getPositiveItemLabelPosition(int row,
            int column) {
        CategoryDataset dataset = getPlot().getDataset();
        double value = dataset.getValue(row, column).doubleValue();
        if (value < 0.15) {
            return new ItemLabelPosition(ItemLabelAnchor.OUTSIDE3,
                    TextAnchor.CENTER_LEFT, TextAnchor.CENTER, 0.0);
        } else {
            return new ItemLabelPosition(ItemLabelAnchor.INSIDE3,
                    TextAnchor.CENTER_RIGHT, TextAnchor.CENTER, 0.0);
        }

    }