我试图通过创建一个子类来覆盖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 之间的浮点数数组