2013-04-21 173 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