JavaFX 11中FXML定义的TableView无法填充数据显示空表问题问询
问题原因
你编写的代码逻辑只差最后一步绑定操作:完成数据构造、TableColumn的单元格值工厂配置后,没有将生成的数据集绑定到TableView组件上,所以表格识别不到可用的数据源,才会显示「No content in table」的空白提示。
另外建议给组件加上泛型声明,避免后续操作出现类型转换的隐性问题。
修正代码
只需要在Controller的initialize方法末尾添加一行数据绑定代码即可:
// 原有代码不变 tcName.setCellValueFactory(new PropertyValueFactory<>("name")); tcNickname.setCellValueFactory(new PropertyValueFactory<>("nickname")); // 新增行:将数据集绑定到TableView tvNicknames.setItems(nickList);
如果需要优化泛型声明,可以将Controller里的组件声明修改为:
@FXML private TableView<DataModel> tvNicknames; @FXML private TableColumn<DataModel, String> tcName; @FXML private TableColumn<DataModel, String> tcNickname;
修改后无需其他调整,运行即可正常显示表格数据。
内容的提问来源于stack exchange,提问作者Datango
相关产品推荐
相关产品推荐

