2017-10-29 2 views
0

私はいくつかのファイルのすべての行に文字を読み込むアプリケーションを持っています。グラフは大丈夫ですが、Imはx軸とy軸に数値がありません。 チャートはHBoxにありますか、または私が作成したボタンの近くにありますか?JavaFXはX軸とY軸の番号を見ることができません

マイアプリや数字行方不明:https://i.imgur.com/AXc3wvy.png

package application; 

/ここにすべての輸入

public class Main extends Application { 

    @Override 
    public void start(Stage primaryStage) { 
     try { 
      HBox stack = new HBox(); 
      VBox buttons = new VBox(); 
      primaryStage.setTitle("Charts"); 

      final NumberAxis xAxis = new NumberAxis(); 
      final NumberAxis yAxis = new NumberAxis(); 
      xAxis.setLabel("Numer lini"); 
      yAxis.setLabel("Ilosc znakow"); 
      final LineChart<Number,Number> lineChart = new LineChart<Number,Number>(xAxis,yAxis); 
      final AreaChart<Number,Number> areaChart = new AreaChart<Number,Number>(xAxis,yAxis); 

      String f1 = "files/1.txt"; 
      String f2 = "files/2.txt"; 
      String f3 = "files/3.txt"; 

      XYChart.Series series = new XYChart.Series(); 
      XYChart.Series series2 = new XYChart.Series(); 
      XYChart.Series series3 = new XYChart.Series(); 

      series = createChart(f1); 
      series2 = createChart(f2); 
      series3 = createChart(f3); 

      Button b1 = new Button("B1"); 

      stack.getChildren().addAll(lineChart, b1); 
      lineChart.getData().addAll(series, series2, series3); 
      Scene scene = new Scene(stack, 800, 600); 




      primaryStage.setScene(scene); 
      primaryStage.show(); 

     } catch(Exception e) { 
      e.printStackTrace(); 
     } 
    } 


    private static XYChart.Series createChart(String fileName) throws FileNotFoundException{ 
     Reader r = new InputStreamReader(new FileInputStream(fileName)); 
     Scanner sc = new Scanner(r); 
     XYChart.Series series = new XYChart.Series(); 
     series.setName(fileName); 

     int chars = 0; 
     List<String> linie = new ArrayList<>(); 

     while(sc.hasNextLine()){ 
      linie.add(sc.nextLine().replaceAll(" ", "")); 
     } 
     for(int i = 0; i < linie.size(); i++){ 
      chars = linie.get(i).length(); 
      series.getData().add(new XYChart.Data(i, chars)); 
     } 
     sc.close(); 

     return series; 
    } 

    public static void main(String[] args) { 
     launch(args); 
    } 
} 

答えて

0

はうわー! 20分の闘争の後、私はエラーを見つけました。 LineChartとAreaChartの両方で同じxAxisとyAxisを使用しているからです。 xAxisオブジェクトとyAxisオブジェクトではなく、別の2つの異なるNumberAxisを使用するだけで、エラーはなくなります。 だけ

final AreaChart<Number,Number> areaChart = new AreaChart<Number,Number>(xAxis,yAxis); 

行をコメントし、次のように表示されます!

単純に、私が言ったように、別のチャートに異なるNumberAxisを使用してください。

+0

うわー、私はこの問題を引き起こすとは思わなかった。ありがとうございました – murilo

+0

ようこそ。面白いことに、私はエラーをキャッチするためにしばらく時間がかかりました。私はファイルを読み込むときにサイドエラーがあった –

関連する問題