CandlestickRenderer类中有一些方法可以将所有蜡烛的边框颜色更改为所需的颜色,但是我需要将所有Up蜡烛边框设置为绿色,并将所有Down蜡烛边框设置为红色。任何建议或示例代码将不胜感激。

最佳答案

我是通过研究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());


结果:

09-29 19:57