首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JavaFx的lineChart

使用JavaFx的lineChart
EN

Stack Overflow用户
提问于 2015-04-28 17:45:01
回答 1查看 108关注 0票数 0

我正在使用Java FX创建折线图。在更新时,我有一个复选框列表,用于选择或取消选择线形图系列。如果全部取消选择,但刻度点或动画刻度点仍然存在,依此类推,通过再次执行相同的操作或为折线图添加新数据,都是相同的。我无法添加图像以使您更轻松。请帮帮忙。

私有静态空printChartAnalysis(analysisResults r){

代码语言:javascript
复制
    clearAnalsisChartData();
    int [][]analysisResult=r.getAnalysisResult();
    ArrayList<String> versionss=r.getVersions();
    int k=0;
    for(String x:versionss){
        String z=new String();
        for(int i=0;i<x.length();i++){
            if(Character.isDigit(x.charAt(i))){
                z+=x.charAt(i);
            }
        }
        dataLOC.add(new XYChart.Data(z,(int)analysisResult[k][0]));
        dataComm.add(new XYChart.Data(z,(int)analysisResult[k][1]));
        dataCond.add(new XYChart.Data(z,(int)analysisResult[k][2]));
        dataLoops.add(new XYChart.Data(z,(int)analysisResult[k][3]));
        dataMem.add(new XYChart.Data(z,(int)analysisResult[k][4]));
        k++;
    }

    seriesLOC.setData(dataLOC);
    seriesCond.setData(dataCond);
    seriesComm.setData(dataComm);
    seriesLoop.setData(dataLoops);
    seriesMem.setData(dataMem);        
    lineChart.getData().setAll(seriesLOC,seriesComm,seriesCond,seriesLoop,seriesMem);
    lineChart.setTitle("Line Chart for "+r.getSoftwareName());

    for (int i = 0; i < names.length; i++) {
        final CheckBox cb = cbs[i];
        cb.setSelected(true);
    }

}

private static void printChartCost(cocomoResults est){
    clearAnalsisChartData();
    clearCostChartData();
    for(COCOMO cost:est.getVersionsResult()){
         String version=cost.getVersion();
         String z=new String();

         for(int i=0;i<version.length();i++){
            if(Character.isDigit(version.charAt(i))){
                z+=version.charAt(i);
            }
        }

        dataEffort.add(new XYChart.Data(z,(int)cost.getEffort()));
        dataDura.add(new XYChart.Data(z,(int)cost.getDuration()));
        dataStaff.add(new XYChart.Data(z,(int)cost.getStaff()));
        dataProd.add(new XYChart.Data(z,(int)cost.getProductivity()));

    }

    seriesEffort.setData(dataEffort);
    seriesDura.setData(dataDura);
    seriesStaff.setData(dataStaff);
    seriesProd.setData(dataProd);

    lineChart.getData().setAll(seriesEffort,seriesDura,seriesStaff,seriesProd);

}

private static void clearAnalsisChartData(){
    lineChart.getData().removeAll(seriesLOC);
    lineChart.getData().removeAll(seriesComm);
    lineChart.getData().removeAll(seriesCond);
    lineChart.getData().removeAll(seriesLoop);
    lineChart.getData().removeAll(seriesMem);

    dataLOC.clear();
    dataLoops.clear();
    dataComm.clear();
    dataCond.clear();
    dataMem.clear();

}
EN

回答 1

Stack Overflow用户

发布于 2015-05-26 00:41:32

据我所知,

代码语言:javascript
复制
cb.setOnAction(event -> {
   if (lineChart.contains(*NAME_OF_YOUR_ELEMENT*))
      lineChart.remove(*NAME_OF_YOUR_ELEMENT*)
   else
      lineChart.remove(*NAME_OF_YOUR_ELEMENT*)
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29915862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档