2015-04-28 2 views
0

Я создаю линейную диаграмму с использованием Java FX. При обновлении у меня есть список флажков для выбора или отмены выбора серии строк. Когда все отменены, но тики или анимированные отметки есть и т. Д., Повторив то же самое или добавив новые данные для линейной диаграммы, это одно и то же. Я не могу добавить изображения, чтобы облегчить вам. Пожалуйста, помогите.lineChart Использование JavaFx

частной статической силы printChartAnalysis (analysisResults г) {

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(); 

} 
+0

Пожалуйста, покажите нам, что вы уже пробовали. – ItachiUchiha

+0

Загрузите на http://imgur.com/ и добавьте ссылку на свой вопрос в виде простого текста. –

+0

Я загрузил фотографии просьбы посмотреть. Спасибо. http://imgur.com/K556dDb, http://imgur.com/Bywhoc3, http://imgur.com/ZaBZS3F –

ответ

0

Насколько я понял

cb.setOnAction(event -> { 
    if (lineChart.contains(*NAME_OF_YOUR_ELEMENT*)) 
     lineChart.remove(*NAME_OF_YOUR_ELEMENT*) 
    else 
     lineChart.remove(*NAME_OF_YOUR_ELEMENT*) 
}); 
Смежные вопросы