使用不可观察的数据填充TableView

时间:2015-02-28 19:16:35

标签: java javafx-2

我是java和javaFX的新手,但我需要这些东西才能完成强制性练习。

到目前为止,我编写了一个用于导入csv值的控制台程序,并对这些值进行了一些比较。但现在的任务是为相同的东西创建一个GUI。所以我想使用为CSVimport编码的相同代码和GUI的比较,但我不知道如何使用未编码的数据填充TableViewTableColumn)作为StringPropertyDoubleProperty等。我找到的所有教程(例如herehere)都使用这些属性。那么如何使用常规字符串或双精度来填充表格呢?

1 个答案:

答案 0 :(得分:2)

如果您有POJO,例如

public class Person {

  // ...

  public String getName() { 
      return name ;
  }

  // ...
}

然后你可以做

TableView<Person> table = new TableView<>();
TableColumn<Person, String> nameColumn = new TableColumn<>("Name");
nameColumn.setCellValueFactory(new Callback<CellDataFeatures<Person, String>, ObservableValue<String>>() {
    @Override
    public ObservableValue<String> call(CellDataFeatures<Person, String> cellData) {
        return new ReadOnlyStringWrapper(cellData.getValue().getName());
    }
});

在JavaFX 8中,最后一个语句变为

nameColumn.setCellValueFactory(cellData -> 
    new ReadOnlyStringWrapper(cellData.getValue()));