1

CandlestickRenderer 类中有一些方法可以将所有蜡烛的边框颜色更改为所需的颜色,但我需要将所有向上蜡烛边框设置为绿色,将所有向下蜡烛边框设置为红色。非常感谢任何建议或示例代码。

4

1 回答 1

3

我通过深入研究CandlestickRenderer类源得到了这个

首先,做一个子类

public class MyCandlestickRenderer extends CandlestickRenderer {

    @Override
    public Paint getItemPaint(int row, int column) {

        //determine up or down candle 
        XYDataset dataset = getPlot().getDataset();
        OHLCDataset highLowData = (OHLCDataset) dataset;
        int series = row, item = column;
        Number yOpen = highLowData.getOpen(series, item);
        Number yClose = highLowData.getClose(series, item);
        boolean isUpCandle = yClose.doubleValue() > yOpen.doubleValue();

        //return the same color as that used to fill the candle
        if (isUpCandle) {
            return getUpPaint();
        }
        else {
            return getDownPaint();
        }
    }
}

然后设置您的图表以使用它

chart.getXYPlot().setRenderer(new MyCandlestickRenderer());

结果:

图表

于 2014-01-14T02:11:40.490 回答