我试图通过创建一个子类来覆盖getItemPaint()
方法:XYLineAndShapeRenderer
private class MultiRenderer extends XYLineAndShapeRenderer{
@Override
public Paint getItemPaint(int row, int column) {
if(row==2){
float x = getAmplitude()[column];
return floatToColor(x);
}
return super.getItemPaint(row, column);
}
private Color floatToColor(float val){...}
}
并调用:
XYPlot xyPlot = (XYPlot) myJFreeChartObject.getPlot();
MultiRenderer r = (MultiRenderer) xyPlot.getRenderer();
但我得到一个ClassCastException
. 有没有办法可以在getItemPaint
不创建子类的情况下正确转换或覆盖它?我试图将 2 系列绘制为常规线图和第 3 系列没有线和不同的色点。前 2 个系列应该有一条线但没有点标记。
注意getAmplitude()
只返回一个介于 0 和 1 之间的浮点数数组