我试图通过创建子类来覆盖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系列没有线和不同的颜色点。前两个系列应该有一条线但没有点标记。
注意getAmplitude()
只返回0到1之间的浮点数组
答案 0 :(得分:1)
plot.setRenderer(new 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){...}
});
或者使用DrawingSupplier
作为plot