用不可观察的数据填充 TableView
Populate TableView with not observable data
我是 java 和 javaFX 的新手,但我需要这些东西来完成必修课。
到目前为止,我编写了一个用于导入 csv 值的控制台程序,并对这些值进行了一些比较。但现在的任务是为同样的东西创建一个 GUI。所以我想使用为 CSVimport 编码的相同代码和 GUI 的比较,但我不知道如何用我的数据填充 TableView
(TableColumn
) =12=] 或 DoubleProperty
等。我找到的所有教程(例如 here or here)都使用这些属性。那么如何使用常规字符串或双打来填充 table?
如果你有一个 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()));
我是 java 和 javaFX 的新手,但我需要这些东西来完成必修课。
到目前为止,我编写了一个用于导入 csv 值的控制台程序,并对这些值进行了一些比较。但现在的任务是为同样的东西创建一个 GUI。所以我想使用为 CSVimport 编码的相同代码和 GUI 的比较,但我不知道如何用我的数据填充 TableView
(TableColumn
) =12=] 或 DoubleProperty
等。我找到的所有教程(例如 here or here)都使用这些属性。那么如何使用常规字符串或双打来填充 table?
如果你有一个 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()));