我的 TableView
中有一列 LocalDateTime
:
column_AddDate = new TableColumn<MyTableItem, LocalDateTime>(TITLE_ADD_DATE)
但结果 - 2016-02-05T12:26:20.506
- 对我来说并不那么漂亮。我想使用 LocalDateTime
类的规则存储和排序表数据,但以自定义格式显示它。例如:
formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
formattedDateTime = dateTime.format(formatter); // "2016-02-05 12:26"
首先,我尝试过编写自定义 class DateTimeForTable extends LocalDateTime
并覆盖 toString()
方法,但 LocalDateTime 是最终的。
所以,我认为,解决方案是使用 setCellValueFactory()
方法和类似的方法,但我对此并不熟练。
请告诉我,如何实现这个功能。
最佳答案
要更改数据的呈现方式,而不是数据本身,您应该使用 cellFactory
。 (我假设您已经安装了 cellValueFactory
,否则您根本看不到任何数据。请注意 cellFactory
是 cellValueFactory
的补充,它不会取代它。)
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
column_AddDate.setCellFactory(tc -> new TableCell<MyTableItem, LocalDateTime>() {
@Override
protected void updateItem(LocalDateTime item, boolean empty) {
super.updateItem(item, empty);
setText(empty ? null : formatter.format(item));
}
});
关于java - 如何更改表格单元格中对象的 View ? - JavaFx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35345131/