Слушатели временной шкалы JavaFX

Описание проблемы:

У меня есть временная шкала, которая используется двумя классами и связана с ползунком. В каждом классе у меня есть слушатель временной шкалы, который что-то делает.

В одном слушателе я манипулирую массивом с некоторыми объектами в какой-то момент времени + могут появиться некоторые изменения в ползунке => изменения на временной шкале.

В другом слушателе я получаю текущее время и что-то с ним делаю. Но теперь я пытаюсь добавить функциональность этому прослушивателю и проверить, когда мое время от ползунка (maxValue) достигнет конца, а также через привязку "конечное" время временной шкалы. Когда это происходит, я хочу перерисовать ползунок и изменить временную шкалу, чтобы она соответствовала новым изменениям ползунка.

Например:

У меня есть ползунок от 0 до 10 минут и привязанная временная шкала. Итак, я хочу, когда временная шкала/ползунок достигает 10 минут, чтобы перерисовать ползунок + настроить временную шкалу, чтобы она имела что-то вроде: от 0 до 20 минут, а текущее время должно быть 10 минут.

ЛЭ: Я пытался что-то сделать и получаю эту ошибку (может поможет)

java.lang.NullPointerException
at com.sun.scenario.animation.shared.SimpleClipInterpolator.interpolate(SimpleClipInterpolator.java:132)
at com.sun.scenario.animation.shared.TimelineClipCore.playTo(TimelineClipCore.java:188)
at javafx.animation.Timeline.impl_playTo(Timeline.java:182)
at com.sun.scenario.animation.shared.InfiniteClipEnvelope.timePulse(InfiniteClipEnvelope.java:131)
at javafx.animation.Animation.impl_timePulse(Animation.java:953)
at com.sun.scenario.animation.shared.AnimationPulseReceiver$1.run(AnimationPulseReceiver.java:133)
at com.sun.scenario.animation.shared.AnimationPulseReceiver$1.run(AnimationPulseReceiver.java:131)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.scenario.animation.shared.AnimationPulseReceiver.timePulse(AnimationPulseReceiver.java:131)
at com.sun.scenario.animation.AbstractMasterTimer.timePulseImpl(AbstractMasterTimer.java:365)
at com.sun.scenario.animation.AbstractMasterTimer$MainLoop.run(AbstractMasterTimer.java:288)
at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:459)
at com.sun.javafx.tk.quantum.QuantumToolkit$9.run(QuantumToolkit.java:332)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:17)
at com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:67)
at java.lang.Thread.run(Thread.java:744)

Заранее спасибо!


person Edwin    schedule 27.02.2014    source источник
comment
Я думаю, что эта ошибка возникает, когда я пытаюсь сделать следующее: timeline.getKeyFrames().clear(); timeline.getKeyFrames().addAll(new KeyFrame(Duration.ZERO,new KeyValue(slider.valueProperty(), 0)), new KeyFrame(val, new KeyValue(slider.valueProperty(), time))); может ли это быть из-за того, что я вызываю clear()?   -  person Edwin    schedule 28.02.2014


Ответы (1)


Хорошо, теперь работает! В чем проблема: проблема заключалась в том, что я пытался манипулировать ключевыми кадрами из прослушивателя изменений currentProperty() временной шкалы на месте.

Решение моей проблемы состояло в том, чтобы создать еще один прослушиватель изменений для slider.maxProperty(), куда я добавил нужные мне ключевые кадры.

person Edwin    schedule 28.02.2014