2013-06-15 3 views
0

У меня есть простое текстовое поле. Мне нужно привязать его к статическому экземпляру свойства JotaTime DateTime. JodaTime дает мне много свойств, но я не могу понять решение.JavaFX Текст привязан к свойству JodaTime DateTime

Все, что мне нужно от DateTime фактическое время, поэтому я предполагаю, что-то вроде:

Text clock = new Text(); 
clock.textProperty().bind(AppController.getSimulationClock().toLocalTime().toString()); 

Но все же, toLocalTime() возвращает строку. Опять же, если я стараюсь:

Text clock = new Text(); 
clock.textProperty().bind(AppController.getSimulationClock().dayOfMonth()); 

Будучи dayOfMonth() возвращающий фактической собственности, она до сих пор не работает. Только для записи AppController.getSimulationClock() просто возвращает нормальный неизменный объект DateTime JodaTime.

Netbeans дает мне это объяснение:

фактический аргумент org.joda.time.DateTime.Property не может быть преобразован в ObservableValue с помощью вызова метода преобразования , где Т представляет собой тип переменной: Т расширяет объект объявлен в интерфейсе javafx.beans.property.Property

Любые идеи?

ответ

0

DateTime.Property не реализует ObservableValue. Концепции свойств JavaFX и JodaTime несовместимы.

+0

Как по-другому? Просто нужно, чтобы текст менялся всякий раз, когда менялся объект DateTime ... Любые идеи? – eduardev

+0

Попробуйте вызвать clock.textProperty(). Bind (новый javafx.beans.property.ReadOnlyStringWrapper (AppController.getSimulationClock(). DayOfMonth(), "AsText")); Свойством bean AsText является DateTime.Property.getAsText() из org.joda.time.field.AbstractReadableInstantFieldProperty. –

+0

Подождите, изменения вашего объекта DateTime не будут отображаться автоматически, поэтому это бесполезно. Может быть, вы можете сигнализировать JavaFX каждый раз, когда вы меняете объект DateTime, чтобы повторно присвоить значение. –