绑定日期选择器

Binding DatePicker

我想要 bindBiderectional() DatePicker。这是我做的

@FXMLController("title.fxml")
public class Controller {
@FXML
private DatePicker dp_date_from;
@Inject
private Model model;
...
@PostConstruct
public void init(){
...
dp_date_from.valueProperty().bindBidirectional(model.dateFromProperty());
...
}

型号Class

@FlowScoped
public class Model {
private ObjectProperty<LocalDate> dateFrom;

public ObjectProperty<LocalDate> dateFromProperty() {
        return dateFrom;
    }
...
}

它抛出一个错误:

io.datafx.controller.FxmlLoaderException:java.lang.reflect.InvocationTargetException

这可能是什么原因?

错误,是在应用程序本身中抛出的,它不会在控制台中写入任何内容。我已经取消了代码,当涉及到第 dp_date_from.valueProperty... 行时,它会抛出异常:

public <T> ViewContext<T> createByController(Class<T> controllerClass, String fxmlName, ViewConfiguration viewConfiguration, Object... viewContextResources) throws FxmlLoadException {
try {
    Object e = controllerClass.newInstance();
    ViewMetadata metadata = new ViewMetadata();
    FXMLController controllerAnnotation = (FXMLController)controllerClass.getAnnotation(FXMLController.class);
    if(controllerAnnotation != null && !controllerAnnotation.title().isEmpty()) {
        metadata.setTitle(controllerAnnotation.title());
    }

    if(controllerAnnotation != null && !controllerAnnotation.iconPath().isEmpty()) {
        metadata.setGraphic(new ImageView(controllerClass.getResource(controllerAnnotation.iconPath()).toExternalForm()));
    }

    FXMLLoader loader = this.createLoader(e, fxmlName, viewConfiguration);
    Node viewNode = (Node)loader.load();
    ViewContext context = new ViewContext(viewNode, e, metadata, viewConfiguration, viewContextResources);
    context.register(e);
    context.register("controller", e);
    this.injectFXMLNodes(context);
    context.getResolver().injectResources(e);
    Method[] var11 = e.getClass().getMethods();
    int var12 = var11.length;

    for(int var13 = 0; var13 < var12; ++var13) {
        Method method = var11[var13];
        if(method.isAnnotationPresent(PostConstruct.class)) {
            method.invoke(e, new Object[0]);
        }
    }

    return context;
} catch (Exception var15) {
    throw new FxmlLoadException(var15);
}

}

谢谢,错误是因为我没有初始化dateFrom。我刚刚将这部分添加到模型 class

public ObjectProperty<LocalDate> dateFromProperty() {
        if(dateFrom == null){
            dateFrom = new SimpleObjectProperty<>();
        }
        return dateFrom;
    }

感谢大家