2017-06-09 8 views
0

javaFXテーブルビューでarffファイルの視覚化に大きな問題があります。私のコード:カラム(属性)のJavaFXのtableViewコンテンツが欠落しています

ArffLoader loader = new ArffLoader(); 
    loader.setFile(arff); 
    Instances data = loader.getDataSet(); 
    List<TableColumn<Instance, String>> atrributes = new ArrayList<>(); 
    for (int i = 0; i < data.numAttributes(); i++) { 
       atrributes.add(new TableColumn<Instance,String>` (data.attribute(i).name())); 

    } 
    List <Instance> instances = new ArrayList<>(); 
    for (int i =0;i<data.size();i++) 
    { 
     instances.add(data.get(i)); 
    } 
    ObservableList<Instance> tableContent = FXCollections.observableArrayList(instances); 
    table.getColumns().removeAll(); 
    table.getColumns().addAll(atrributes); 
    table.setItems(tableContent); 
    table.setVisible(true); 

名が正しく設定されているが、コンテストは、あなたは、各テーブルの列にセル値ファクトリを設定する必要があります(tableContent変数)

答えて

0

をshwonされていません。これは、各行のInstanceを、その列の対応するセルに表示される値にマップする関数です。

私はウェカに慣れていないけど、Javadocsを見て、私はあなたが

for (int i = 0; i < data.numAttributes(); i++) { 
    TableColumn<Instance, String> column 
     = new TableColumn<Instance,String>(data.attribute(i).name()); 
    final int attIndex = i ; 
    column.setCellValueFactory(cellData -> 
     new SimpleStringProperty(cellData.getValue().toString(attIndex))); 
    atrributes.add(column); 

} 
が必要だと思う