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 に答える