【问题标题】:p:radarChart stacks all objects of an ArrayList<radarModel> in every chartp:radarChart 在每个图表中堆叠 ArrayList<radarModel> 的所有对象
【发布时间】:2021-08-25 14:19:17
【问题描述】:

用户首先进行选择,我的BackingBean根据这个选择构建相应数量的radarModel并将它们添加到ArrayList中。然后更新

并在 标签的帮助下将请求的雷达图输出给用户。 问题一是如果我想同时输出多个radarChart,那么每个radarChart中的所有值都会同时输出。 问题 2 是每次更新表单时,雷达图都会累加起来,每个雷达图包含越来越多的数据。

雷达图输出

    <h:form id="radarAusgabeFormId">
        <ui:repeat value="#{AllManager.radarModelList}" var="radarModel">
            <p:radarChart model="#{radarModel}" style="display: block;"/>
        </ui:repeat>
    </h:form>

创建单个radarModels的类

public class radarChart {
private RadarChartModel radarModel;
public RadarChartModel createRadarModel(String chartLabel,List<Number> listToFillDataVal, List<String> listToFilllabels) {
    radarModel = new RadarChartModel();
    ChartData data = new ChartData();

    RadarChartDataSet radarDataSet = new RadarChartDataSet();
    radarDataSet.setLabel(chartLabel);
    radarDataSet.setFill(true);
    radarDataSet.setBackgroundColor("rgba(157, 108, 100, 0.4)");
    radarDataSet.setBorderColor("rgb(157, 108, 100)");
    radarDataSet.setPointBackgroundColor("rgb(157, 108, 100)");
    radarDataSet.setPointBorderColor("#fff");
    radarDataSet.setPointHoverBackgroundColor("#fff");
    radarDataSet.setPointHoverBorderColor("rgb(157, 108, 100)");
    radarDataSet.setData(listToFillDataVal);
    
     RadarChartDataSet radarDataSet2 = new RadarChartDataSet();
    radarDataSet2.setLabel("");
    radarDataSet2.setFill(false);
    radarDataSet2.setBackgroundColor("rgba(0,0,0,0)");
    radarDataSet2.setBorderColor("rgba(0,0,0,0)");
    radarDataSet2.setPointBackgroundColor("rgba(0,0,0,0)");
    radarDataSet2.setPointBorderColor("rgba(0,0,0,0)");
    radarDataSet2.setPointHoverBackgroundColor("rgba(0,0,0,0)");
    radarDataSet2.setPointHoverBorderColor("rgba(0,0,0,0)");
    List<Number> dataVal2 = new ArrayList<>();
    dataVal2.add(100);
    dataVal2.add(0);
    radarDataSet2.setData(dataVal2);
    
    data.addChartDataSet(radarDataSet);
    data.addChartDataSet(radarDataSet2);
    data.setLabels(listToFilllabels);

    /* Options */
    RadarChartOptions options = new RadarChartOptions();
    Elements elements = new Elements();
    ElementsLine elementsLine = new ElementsLine();
    elementsLine.setTension(0);
    elementsLine.setBorderWidth(3);
    elements.setLine(elementsLine);
    
    options.setElements(elements);
    radarModel.setOptions(options);
    radarModel.setData(data);
    
    return radarModel;
}

ui元素使用的列表

private List<RadarChartModel> radarModelList= new ArrayList<>();

第二次更新后的radarChart

我希望有解决这个问题的方法,我期待收到您的来信。

最好的尊重, 本

【问题讨论】:

    标签: java jsf primefaces radar-chart uirepeat


    【解决方案1】:

    所有的radarChartModels都指向同一个列表,在为每个对象提供了自己的列表后,问题得到了解决。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多