2013-04-21 146 views
-1

如何等待JavaFx转换结束?等待转换结束

  • 我有一个交互式排序算法。
  • 每个数字都用矩形表示。
  • 当两个数字交换时,矩形必须交换。

问题是动画持续时间是1秒,在这个时候整个数组已经排序。我已经做了一个交换矩形的同步方法。但是当它使“transition.play();”

我认为转换正在另一个线程中运行,所以它必须等到转换结束才结束该方法。

你有什么想法吗?

回答

0

这取决于你如何排序数组。如果您可以一步一步对其进行排序,然后执行排序的一个步骤,然后开始一个动画。既然你知道持续时间是1秒,就睡1秒钟,然后再进行一步。继续,直到整个数组排序。

如果JavaFx允许您在动画完成时接收回调,请监听回调以了解何时可以开始排序的下一步。

+0

如果我睡了1秒,用户界面冻结。 – 2013-04-21 15:24:59

+0

好的,动画结束后JavaFx会如何让你知道? (我从来没有用过)。睡觉不起作用,所以只需让控件回到UI框架,然后回应关于动画的回调。这肯定会是一个异步的,回调驱动的设计。 – 2013-04-21 15:28:49

+1

了JavaFx让我做这样的事情:timeline2.setOnFinished(新的EventHandler (){ @覆盖 公共无效手柄(ActionEvent的动作事件){ setRectangleFill(rectangle2,Color.BLACK); rectangle2.setX(rectangle1X); } }); – 2013-04-21 15:31:57