我在Scene构建器中设计了这个简单的tableView。我有一个按下的按钮,它应该将ObservableList中的数据添加到表中,但数据不会出现。表格从"没有数据"到一个没有数据的可滚动表。
代码:
@FXML private TableView<Record> tableView;
static ObservableList<Record> dataen =
FXCollections.observableArrayList(
new Record("January", 100),
new Record("February", 200));
设置数据:
@FXML
private void handleButtonAction(ActionEvent event) {
tableView.setItems(dataen);
}
答案 0 :(得分:2)
我猜你还没有为每个列指定任何TableColumns或CellValueFactories。请参阅JavaDoc for TableView。
您可以在SceneBuilder中添加TableColumns,并为每个分配一个fx:id
然后在你的initialize方法中添加例如:
monthCol.setCellValueFactory(new PropertyValueFactory("monthName"));
其中monthName指的是Record类中的方法monthNameProperty()
。
答案 1 :(得分:0)
解决方案是将下面的代码添加到initialize方法中。当我使用Scene Builder时,我不相信我必须这样做,结果我错了?
Month.setCellValueFactory(new PropertyValueFactory("fieldMonth"));
Value.setCellValueFactory(new PropertyValueFactory("fieldValue"));
tableView.setItems(dataen);