这是我第一次使用 JavaFx,我只是将本教程作为模板:http://code.makery.ch/library/javafx-8-tutorial/part3/ .
对于我的应用程序,我正在使用左侧的两列:电话号码和通话开始日期/时间。我想要更改表中数据的格式,因为它当前的格式为 yyyy-MM-ddThh:mm
。
我似乎不知道将格式化部分放在哪里。我有一个日期格式化程序函数,您可以在上面的链接中找到它,但它返回一个字符串并给我错误。谢谢你提供的所有帮助。以下是我正在使用的一些代码片段。
Controller :
@FXML
private void initialize() {
// Initialize the person table with the two columns.
billingNumberColumn.setCellValueFactory(cellData -> cellData.getValue().billingNumberProperty());
callStartColumn.setCellValueFactory(cellData -> cellData.getValue().callStartProperty());
}
型号:
public LocalDateTime getCallStart() {
return callStart.get();
}
public void setCallStart(LocalDateTime callStart) {
this.callStart.set(callStart);
}
public ObjectProperty<LocalDateTime> callStartProperty() {
return callStart;
}
日期格式:
public static String format(ObjectProperty<LocalDateTime> callStart) {
if (callStart == null) {
return null;
}
return DATE_FORMATTER.format((TemporalAccessor) callStart);
}
最佳答案
使用cellFactory
。 TextFieldTableCell
提供了一种在给定转换器的情况下创建单元工厂的方法。作为转换器a LocalDateTimeStringConverter
可以使用:
callStartColumn.setCellValueFactory(cellData -> cellData.getValue().callStartProperty());
callStartColumn.setCellFactory(TextFieldTableCell.forTableColumn(new LocalDateTimeStringConverter(DATE_FORMATTER, DATE_FORMATTER)));
关于JavaFx:格式化表列数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36111356/