I generate a JFreeChart CandlestickChart , using OHLCSeries . And I extend CandlestickRenderer. In CandlestickRenderer, I overwrite "public Paint getItemPaint(int series, int item)" , in it I need the every stoke's date info to do something, but I don't know to get it , please help me to solve it.
Part of Codes as following:
OHLCSeries ohlcSeries = new OHLCSeries("Price");
for(Records record : recordslist ) {
double h =...;
....
LocalDate actionday = record.getRecordsDay ();
int year = actionday.getYear();
int month = actionday.getMonthValue();
int day = actionday.getDayOfMonth();
ohlcSeries.add(new Day(day,month,year), open, high, low, close);
}
OHLCSeriesCollection candlestickDataset.addSeries(ohlcSeries);
JFreeChart candlestickChart = ChartFactory.createCandlestickChart("", "","", candlestickDataset, true);
DateAxis dayAxis = new DateAxis ();
candlestickChart.getXYPlot().setDomainAxis(dayAxis);
class AnalysisCandlestickRenderer extends CandlestickRenderer {
public Paint getItemPaint(int series, int item) {
//here I need every stoke's date info , how can I get it?
}
}
As suggested in this related example, you can access the required field in your dataset, an OHLCSeriesCollection
, using the series
and item
values passed to your implementation of getItemPaint()
in your custom CandlestickRenderer
. Starting form this complete example, the following renderer produces the data values shown.
Code:
private final OHLCSeriesCollection seriesCollection = new OHLCSeriesCollection();
…
class AnalysisCandlestickRenderer extends CandlestickRenderer {
@Override
public Paint getItemPaint(int series, int item) {
OHLCSeries currentSeries = seriesCollection.getSeries(series);
System.out.println(series + ": " + currentSeries.getPeriod(item));
return super.getItemPaint(item, item);
}
}
…
CandlestickRenderer r = new AnalysisCandlestickRenderer();
chart.getXYPlot().setRenderer(r);
Console:
1: Wed Jan 01 12:00:00 EST 2014
1: Wed Jan 01 12:01:00 EST 2014
1: Wed Jan 01 12:02:00 EST 2014
1: Wed Jan 01 12:03:00 EST 2014
1: Wed Jan 01 12:04:00 EST 2014
0: Wed Jan 01 12:00:00 EST 2014
0: Wed Jan 01 12:01:00 EST 2014
0: Wed Jan 01 12:02:00 EST 2014
0: Wed Jan 01 12:03:00 EST 2014
0: Wed Jan 01 12:04:00 EST 2014
0: Wed Jan 01 12:05:00 EST 2014
0: Wed Jan 01 12:06:00 EST 2014
0: Wed Jan 01 12:07:00 EST 2014
0: Wed Jan 01 12:08:00 EST 2014
0: Wed Jan 01 12:09:00 EST 2014
Chart: