1

私はJavaにかなり慣れておらず、外部csvをJavaFXTableViewにロードする簡単な方法をインターネットで検索しています。CSVを配列に解析することはできましたが、今はどのように処理する必要があるのか​​わかりません。それから私はDataFXライブラリで遊んでいました。しかし、解析されたcsvをテーブルに渡すことができませんでした。私はここでObservableListsを本当に理解していないと思いますが、これはある種必要だと思いますか?良いチュートリアルを知っていますか、それともファイルを解析した後の次のステップを説明できますか?どうも

編集:それは私がしたことです

import javafx.application.Application;  
import javafx.scene.SceneBuilder;  
import javafx.scene.control.TableColumn;  
import javafx.scene.control.TableView;  
import javafx.stage.Stage;  
import org.javafxdata.datasources.reader.FileSource;  
import org.javafxdata.datasources.provider.CSVDataSource; 

public class CSVTableSample extends Application {  
  @SuppressWarnings("unchecked")  
  @Override  
  public void start(Stage stage) throws Exception {  
       stage.setTitle("Test App");  
       // Just loading the file...  
       FileSource fs = new FileSource("test.csv");  
       // Now creating my datasource 
       CSVDataSource dataSource = new CSVDataSource(  
                 fs, "order-id", "order-item-id");  
       @SuppressWarnings("rawtypes")  
       TableView table1 = new TableView();  
       TableColumn<?, ?> orderCol = dataSource.getNamedColumn("order-id");  
       TableColumn<?, ?> itemCol = dataSource.getNamedColumn("order-item-id");    
       table1.getColumns().addAll(orderCol, itemCol);  
       table1.setItems(dataSource);  
       stage.setScene(SceneBuilder.create().root(table1).build());  
       stage.show();  
  }  
  public static void main(String[] args) {  
       Application.launch(args);  
  }  
}  

eclipseはtable1.setItems(dataSource);について言います。

TableView型のメソッドsetItems(ObservableList)は、引数には適用できません(CSVDataSource)

4

2 に答える 2

2

タブ区切りファイルのサンプル ソリューションがここにあります。csv ファイルも同様に処理できます。

このサンプルは、の各行が文字列プロパティであり、各プロパティが csv ファイルのフィールドを表すTableViewように の型を宣言することによって機能します。のリストは、そのようなリストのリストです 。s を各列に設定すると、そのセルの行のバッキングからその列の正しいセル値が抽出されます。TableView<ObservableList<StringProperty>>TableViewObservableListTableViewitemscellValueFactoryObservableList<StringProperty>

于 2012-12-10T23:53:22.703 に答える
1

タイプ TableView のメソッド setItems(ObservableList) は、引数 (CSVDataSource) には適用されません。

回線を変更する

table1.setItems(dataSource);

table1.setItems(dataSource.getData());

DataFX を使用したコード例:

DataSourceReader dsr1 = new FileSource("your csv file path");
String[] columnsArray // create array of column names you want to display 
CSVDataSource ds1 = new CSVDataSource(dsr1,columnsArray);
TableView tableView = new TableView();
tableView.setItems(ds1.getData());
tableView.getColumns().addAll(ds1.getColumns());

標準のjavafxの方法でそれをしたい場合:ここを見てください

于 2012-12-11T21:57:38.113 に答える