2017-01-31 3 views
1

У меня проблема с удалением данных из линейной диаграммы. Я написал графики графиков программ, которые после того, как действие нажимает на кнопку, завершает данные диаграммы.JavaFX LineChart - чистые данные из диаграммы

dataSeries1.getData(). RemoveAll(); < - не работает.

Код:

NumberAxis xAxis = new NumberAxis(); 
    xAxis.setLabel("Oś Y"); 
    NumberAxis yAxis = new NumberAxis(); 
    yAxis.setLabel("Oś X"); 
    final LineChart lineChart = new LineChart(xAxis, yAxis); 
    final XYChart.Series dataSeries1 = new XYChart.Series(); 

    lineChart.setCreateSymbols(false); 
    lineChart.getData().add(dataSeries1); 

Кнопка Действие:

btn.setOnAction(new EventHandler<ActionEvent>() { 
     @Override 
     public void handle(ActionEvent event) { 

      int lewy = Integer.parseInt(kresLewy.getText()); 
      int prawy = Integer.parseInt(kresPrawy.getText()); 
      String rownanie = field.getText(); 

      try { 

       String tekst = lewy + "; " + prawy + "; " + rownanie; 

       StringReader tekstReader = new StringReader(tekst); 

       parsery.interpreter.parser parser_obj 
         = new parsery.interpreter.parser(new parsery.interpreter.MyLexer(tekstReader)); 

       Object result = parser_obj.parse().value; 

       String sWynik = result.toString(); 

       ZmiennaX zX = new ZmiennaX(); 
       ArrayList<Double> xArr = new ArrayList<Double>(); 
       for (double i = lewy; i <= prawy + 0.001; i = i + zX.getDokladnosc()) // +0.001 dla bledow zaokraglenia 
       { 
        xArr.add(zX.round2(i)); 
       } 
       String sX = xArr.toString(); 
       String wartosciX = sX.substring(1, sX.length() - 1); 
       String wartosciY = sWynik.substring(1, sWynik.length() - 1); 

       String XbezSpacji = wartosciX.replace(" ", ""); 
       String YbezSpacji = wartosciY.replace(" ", ""); 

       String[] splitX = XbezSpacji.split(","); 
       String[] splitY = YbezSpacji.split(","); 
       dataSeries1.getData().removeAll(); 

       for(int i=0; i<splitX.length; i++){ 
       double x = Double.parseDouble(splitX[i]); 
       double y = Double.parseDouble(splitY[i]); 
       dataSeries1.getData().add(new XYChart.Data(x, y)); 
       } 

      } catch (Exception e) { 
       System.out.println("Podczs obliczenia wystapil blad. (" + e.getMessage() + ")"); 
      } catch (Error error) { 
       System.out.println("Podczs obliczenia wystapil blad. (" + error.getMessage() + ")"); 
      } 
     } 
    }); 

Может кто-нибудь помочь мне, чтобы удалить данные после составления нового плана?

ответ

2

removeAll требует, чтобы элементы, подлежащие удалению, передавались по его параметру. Так как вы не предусмотрено ни - ничто не удаляется:

dataSeries1.getData().removeAll(); 

Вы хотите использовать clear() вместо в строке выше.

общественного недействительными ясно()

Удаляет все элементы из этого списка (дополнительная работа). После этого вызова список будет пустым.

Смежные вопросы