2009-08-15 48 views

回答

1

或者,你可以從java.util.Formatter中使用的標誌。

action: function() { 
    txt = "{%tM dur}.{%tS dur}" 
} 

這將導致前導0,如在「02.03」中,對於dur =「123402ms」。

0

您可以使用String.valueOf(dur)將持續時間轉換爲字符串。然後,您可以使用Java格式化類來重新格式化字符串。由於JavaFX將字符串的持續時間格式化爲字符串(例如「123402.0ms」),所以必須切斷字符串的結尾。如果JavaFX具有Long.valueOf(dur)函數,那麼這將更容易。

參見下面的示例:

import javafx.stage.Stage; 
import javafx.scene.Scene; 
import javafx.scene.text.Text; 
import javafx.scene.text.Font; 
import javafx.scene.control.Button; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

var fmt = new SimpleDateFormat("m:ss"); 
var dur: Duration = 123402ms; 
var txt: String = String.valueOf(dur); 

Stage { 
    title : "Duration Switch" 
    scene: Scene { 
     width: 400 
     height: 200 
     content: [ 
      Text { 
       font : Font { 
        size: 24 
       } 
       x: 10, y: 30 
       content: bind "Duration={txt}" 
      }, 
      Button { 
       translateY: 140 
       text: "Switch" 
       action: function() { 
        var durStr = String.valueOf(dur); 
        durStr = durStr.substring(0, durStr.indexOf(".")); 
        var date = new Date(Long.parseLong(durStr)); 
        txt = fmt.format(date); 
       } 
      } 
     ] 
    } 
} 
相關問題