2014-12-26 33 views
0

所以基本上我創建了一個模擬系統,模擬由於某些因素引起的房間溫度升高和下降。 我想輸出溫度如何隨時間變化使用標籤。我以這種方式使用時間軸嘗試:如何使用JavaFX中的時間線更新標籤的文本?

   Timeline timeline = new Timeline(); 
       List<KeyValue> values = new ArrayList<KeyValue>(); 
       values.add(new KeyValue(label.textProperty(), "1")); 
       values.add(new KeyValue(label.textProperty(), "2")); 
       values.add(new KeyValue(label.textProperty(), "3")); 
       values.add(new KeyValue(label.textProperty(), "4")); 


       timeline.getKeyFrames().add(new KeyFrame(new Duration(4000), values.toArray(new KeyValue[values.size()]))); 
       timeline.play(); 

我預計這個代碼顯示爲「1」,然後選擇「2」,但它只是等待4秒,改變標籤的文本爲「4」。

我該如何實現我想要的漸變?

謝謝!

回答

1

TimeLine完成了您所編程的內容(連續4次更改標籤文本四次後)。

如果你想陸續有小的延遲來改變標籤的文本之一,你將不得不使用多個關鍵:

timeline.getKeyFrames().add(new KeyFrame(Duration.seconds(4), new KeyValue(label.textProperty(), "1"))); 
timeline.getKeyFrames().add(new KeyFrame(Duration.seconds(5), new KeyValue(label.textProperty(), "2"))); 
timeline.getKeyFrames().add(new KeyFrame(Duration.seconds(6), new KeyValue(label.textProperty(), "3"))); 

等..