我必须使用显示当前时间的行创建时间轴。我正在使用AnchorPane添加放置在ScrollPane中的行。我需要模拟1天,滚动窗格宽度为(2880px,每60px为1小时)。我的限制是(前一天12小时,第二天12小时)。移动我的线路工作正常。
我需要做的就是在视口中间设置一行并在其下移动内容。 对于移动线我使用这种方法:
scrollPane.setHvalue( line.getStartX() - anchorPane.width);
工作“很好”。内容正在移动,但线路正在向前发展。我在线路为0:00(位置设置为0.25)时开始,当位置为(0.75)24 h时结束。 我也在缩放我的时间轴Y轴
/* where line position is calculate by scale, scale is x2, x3, x4.... */
scrollPane.setHvalue( line.getStartX() - anchorPane.width * scale);
请看imgs几小时:0:00,12:00,24:00 ...... 正确的行位置仅在12:00 ...如何修改函数来设置行的位置?
答案 0 :(得分:0)
这条线是否必须在滚动窗格内。为什么不将它叠加在整个滚动窗格上?
或者看到这篇文章关于使用绑定来修复滚动窗格内的节点:Always visible when scrolled anchored Node in Java FX 2.0?
答案 1 :(得分:0)
我不知道我是否完全明白你的问题。在我看来,你有一个滚动窗格,上面有一个绿线节点,不是吗?如果是的话......
如果绿线是一个节点,也许你可以为滚动窗格的显示值注册事件处理程序(hvalue,i belive)。例如,每次修改滚动窗格的滚动值时,都应该更新绿线节点的平移位置。我不是布局方面的专家。 JavaFX对我来说还是新手。但据我所知,似乎可以做到。从理论上讲,这显然可以做到。