1

私はバージョン4以降Javaを使用しておらず、継ぎ目をキャストすることで、ほとんど煩わしいところまで変更しています。次のコンパイルエラーへのアプローチ方法がわかりません。

HelloWorld.java:70:エラー:add(Series)lineChart.getData()。add(series);に適したメソッドが見つかりません。^メソッドList.add(int、Series)は適用されません(実際の引数リストと仮引数リストの長さは異なります)メソッドList.add(Series)は適用されません(実際の引数Seriesはメソッド呼び出し変換によってSeriesに変換できません)

これが私のコードです:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.LineChart;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.XYChart;
import javafx.scene.chart.*;
import javafx.stage.Stage;
import javafx.geometry.Side;
import java.lang.*;
import java.net.*; 
import java.io.*;
import java.util.*;




public class HelloWorld extends Application {

    @Override public void start(Stage stage) {


        Vector <String[]>  v = new Vector<String[]>();

        try{

                File f = new File("audjpy.txt"); 
                BufferedReader br = new BufferedReader(new FileReader(f));
                String line;
                String[] data;
                int count = 0;
                while ((line = br.readLine()) != null) {
                        data = line.split(",");
                        if(count>0)v.add(data);
                        if(count == 400)break;
                        count++;
                }
                br.close();
        }catch(IOException e){System.out.println(e);}




        stage.setTitle("Line Chart Sample");
        //defining the axes
        NumberAxis xAxis = new NumberAxis();
        NumberAxis yAxis = new NumberAxis();
        yAxis.setSide(Side.RIGHT);
        xAxis.setLabel("Number of Month");
        //creating the chart
        final LineChart<Number,Number> lineChart = 
                new LineChart<Number,Number>(xAxis,yAxis);

        lineChart.setTitle("Stock Monitoring, 2010");

        //defining a series
        XYChart.Series<Double, Double> series = new XYChart.Series<Double, Double>();
        series.setName("My portfolio");

        //populating the series with data
        //<TICKER>,<DTYYYYMMDD>,<TIME>,<OPEN>,<HIGH>,<LOW>,<CLOSE>,<VOL>
    Enumeration<String[]> e = v.elements();
    while(e.hasMoreElements()){
        String[] data = e.nextElement();
            double x = Double.parseDouble(data[4]);
            double y = Double.parseDouble(data[5]);
            series.getData().add(new XYChart.Data<Double, Double>(x,y));
        }

        Scene scene  = new Scene(lineChart,800,600);
        lineChart.getData().add(1, series);

        stage.setScene(scene);
        stage.show();
    }


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

1 に答える 1

0

理由は、使用していて交換可能であるためDoubleNumberすべてのジェネリックを変更Numberして問題を解決する必要があるためです。

@Override
public void start(Stage stage) {


    Vector<String[]> v = new Vector<String[]>();

    try {

        File f = new File("audjpy.txt");
        BufferedReader br = new BufferedReader(new FileReader(f));
        String line;
        String[] data;
        int count = 0;
        while ((line = br.readLine()) != null) {
            data = line.split(",");
            if (count > 0) {
                v.add(data);
            }
            if (count == 400) {
                break;
            }
            count++;
        }
        br.close();
    } catch (IOException e) {
        System.out.println(e);
    }




    stage.setTitle("Line Chart Sample");
    //defining the axes
    NumberAxis xAxis = new NumberAxis();
    NumberAxis yAxis = new NumberAxis();
    yAxis.setSide(Side.RIGHT);
    xAxis.setLabel("Number of Month");
    //creating the chart
    final LineChart<Number, Number> lineChart = new LineChart<Number, Number>(xAxis, yAxis);

    lineChart.setTitle("Stock Monitoring, 2010");

    //defining a series
    XYChart.Series<Number, Number> series = new XYChart.Series<Number, Number>();
    series.setName("My portfolio");

    //populating the series with data
    //<TICKER>,<DTYYYYMMDD>,<TIME>,<OPEN>,<HIGH>,<LOW>,<CLOSE>,<VOL>
    Enumeration<String[]> e = v.elements();
    while (e.hasMoreElements()) {
        String[] data = e.nextElement();
        double x = Double.parseDouble(data[4]);
        double y = Double.parseDouble(data[5]);
        series.getData().add(new XYChart.Data<Number, Number>(x,y));
    }

    Scene scene = new Scene(lineChart, 800, 600);
    lineChart.getData().add(1, series);

    stage.setScene(scene);
    stage.show();
}
于 2013-01-08T17:42:04.187 に答える