0

この質問と同じように、私は を更新しようとしてTableViewJavaFXます。を使用したソリューションを採用しましたDataFX

私のコード:

File file = new File(path);
if(file.exists() && file.canRead()) {
    DataSourceReader dsr1 = new FileSource(file);
    String[] columnsArray = {"firstName", "lastName"}; 
    CSVDataSource ds1 = new CSVDataSource(dsr1, columnsArray);
    System.out.println("CSV : " + ds1.getData().size());  // outputs 0

    //Below is commented out since I don't have data : source of the error
    //tblAthleteList.setItems(ds1.getData());
    //tblAthleteList.getColumns().addAll(ds1.getColumns());
}

これが私のテスト.csvファイルのビューです:

firstName, lastName
first, last
test, tester

私は を使用してJavaFX 2おりDataFX 1.0、構築していますe(fx)clipse

編集

FileSource(File f)コンストラクターを使用するようにコードを少し変更して、これが何かを変更するかどうかを確認します。CSVDataSource から何かを印刷しようとしていることがわかりましたが、常にNullPointerException. したがって、CSVDataSourceがデータを取得しないと仮定します。例から、これが正しく行われていることがわかります。BufferedReaderシンプルなループを使用してファイルを読み取ることができます。

編集 2

CSVDataSource質問を編集しました...ファイルからデータが取り込まれないという事実にエラーがあることを指定してい.csvます。行ds1.getData().size()は戻ります0.csv私が使用して いる非常に単純なファイルを投稿しました。+でEOL構成され、編集されます(余分な文字はありません)。CRLFNotepad++Excel

4

1 に答える 1

1

columnsArrayの列名がCSVファイルの列名と完全に等しいことを確認してください(大文字と小文字が区別されます)。

コードのように列名を入力したときに同様の例外が発生しyearましたが、csvファイルにはその例外がありますYear

質問の編集による更新:

ファイル内の,との間のスペースを削除するか、コードの列名として配置します:)lastName" lastName"

于 2013-01-18T15:13:25.360 に答える