나는 그리폰 세계로 진출하고 있으며, 다운로드 한 작은 lazybones 응용 프로그램에 오류가 발생했습니다. 내 생각은 그렇게 보입니다. Gradle을 사용한 후Griffon-JavaFX : View가 모델에 관한 NPE를 던졌습니다.
@ArtifactProviderFor(GriffonView)
class PennyPackerView {
FactoryBuilderSupport builder
PennyPackerController controller
PennyPackerModel model
void initUI() {
builder.application(title: application.configuration['application.title'],
sizeToScene: true, centerOnScreen: true, name: 'mainWindow') {
scene(fill: WHITE, width: 200, height: 60) {
gridPane {
label(id: 'clickLabel', row: 0, column: 0,
text: bind(model.clickCount))
button(row: 1, column: 0, prefWidth: 200,
controller.click())
}
}
}
}
}
: 실행, 그것은 내 모델이 적어도 바인딩이 일어나는 시간에 주입되지 않고 있다고 생각하는 날 리드 오류가 발생합니다.
Warning, could not locate neither a JavaFX property nor a JavaBean property for class
javafx.scene.control.Label, property: '0'
[2014-10-20 13:30:56,166] [JavaFX Application Thread]
ERROR griffon.core.GriffonExceptionHandler
- Uncaught Exception
java.lang.NullPointerException: Cannot bind to null
at javafx.beans.property.StringPropertyBase.bind(StringPropertyBase.java:161)
at javafx.beans.property.Property$bind.call(Unknown Source)
at groovyx.javafx.factory.FXHelper$__clinit__closure26.doCall(FXHelper.groovy:454)
다음은 매우 복잡한 모델 코드입니다.
@ArtifactProviderFor(GriffonModel)
class PennyPackerModel {
@FXObservable String clickCount = "0"
}
이 NPE가 던져진 이유 또는 다른 문제에 대한 도움을 주시면 감사하겠습니다. 나는 lazybones에서 얻은 것이 griffon-javafx-groovy 시작 앱이라고 생각합니다.
EDIT : 디버깅 중이므로 모델을 삽입하는 것처럼 보이지만 바인딩을 설정할 때 문제가 발생합니다. StringPropertyBase 클래스에서 전달되는 newObservable의 값은 null입니다.
public void bind(ObservableValue<? extends String> newObservable) {
if (newObservable == null) {
throw new NullPointerException("Cannot bind to null");
}
나는 이런 일이 왜 모르거나 그것을 해결하는 방법 = (