JavaFx:格式化表列数据

标签 java model-view-controller javafx

这是我第一次使用 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);
}

最佳答案

使用cellFactoryTextFieldTableCell提供了一种在给定转换器的情况下创建单元工厂的方法。作为转换器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/

相关文章:

java - 修复向 ManyToMany 添加实体的问题

java - HashSet:无法删除相等的对象?

java - 如何在 JSP 中公开 bean?

ios - 调用 Web 服务方法是 MVC 模式中模型或 Controller 的一部分

javafx - 如何在javafx中获取3D对象窗口上的2D坐标

java - 将列表保存到文件android

JavaFX TableView 可编辑(true)不起作用

ruby-on-rails - Rails 3 应用程序中的简单搜索表单不显示

java - 用于 javafx (jdk8u201) 的 cloudbuild.yaml 以及其他依赖项

javascript - 将命令注入(inject) JavaFX 托管的 Javascript 中?