我的专栏中LocalDateTime
有TableView
:
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));
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句