JavaFX时间线侦听器

JavaFX时间线侦听器,java,slider,javafx,timeline,Java,Slider,Javafx,Timeline,问题描述: 我有一个在两个类之间共享的时间线,并用滑块绑定。 在每个类中,我都有一个时间线的监听器来做一些事情 在一个监听器中,我在某个时间点操纵带有一些对象的数组+滑块的一些更改可能会出现=>时间线的更改 在另一个监听器中,我获取当前时间并用它做一些事情但现在我尝试向这个侦听器添加功能,并检查我的时间从滑块(maxValue)何时到达终点,以及通过绑定时间线的“终点”时间。发生这种情况时,我希望重新绘制滑块并更改时间线以适应新滑块的更改。 例如: 我有一个从0到10分钟的滑块和一个绑定的时间线

问题描述:

我有一个在两个类之间共享的时间线,并用滑块绑定。 在每个类中,我都有一个时间线的监听器来做一些事情

在一个监听器中,我在某个时间点操纵带有一些对象的数组+滑块的一些更改可能会出现=>时间线的更改

在另一个监听器中,我获取当前时间并用它做一些事情但现在我尝试向这个侦听器添加功能,并检查我的时间从滑块(maxValue)何时到达终点,以及通过绑定时间线的“终点”时间。发生这种情况时,我希望重新绘制滑块并更改时间线以适应新滑块的更改。

例如:

我有一个从0到10分钟的滑块和一个绑定的时间线。因此,我希望当时间线/滑块达到10分钟时,重新绘制滑块并调整时间线,使其具有类似于:0到20分钟的值,并且当前时间为10分钟

乐:我试着做些什么,但我得到了这个错误(也许有帮助)


提前谢谢

好了,现在开始工作了!问题是什么:问题是我试图从时间线的currentProperty()的changelistener中操作关键帧


我的问题的解决方案实际上是为slider.maxProperty()创建另一个changelistener,我在其中添加了所需的关键帧。

我认为在尝试执行以下操作时会出现此错误:
timeline.getKeyFrames().clear();timeline.getKeyFrames().addAll(新关键帧(Duration.ZERO,新KeyValue(slider.valueProperty(),0)),新关键帧(val,新KeyValue(slider.valueProperty(),time))这可能是因为我正在调用clear()?
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)