2017-01-31 10 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()を使用したいです。

明らかます。public void()

は、このリスト(任意のオペレーション)からすべての要素を削除します。この呼び出しが返った後、リストは空になります。

関連する問題