2014-01-09 64 views
4

我有一個窗戶,我必須保持方形。我的代碼是在保持寬高比的同時調整JavaFX Windows?

primaryStage.minHeightProperty().bind(scene.widthProperty()); 
primaryStage.minWidthProperty().bind(scene.heightProperty()); 

它確實在擴展時調整了正方形的大小,但在嘗試使其更小時遇到問題? 有時候其中一邊會比另一邊短一些或長一些。有沒有解決這個問題?我在當前使用的代碼中做錯了什麼?

回答

1

這不直接回答你的問題,但我認爲實際上是更好的用戶體驗,因爲你不限制用戶。相反,固定舞臺的高寬比的,可以考慮使用插圖墊要保持正方形內容:

private val DEF_PAD = 6.0 
chart.paddingProperty.bind(boundValue(stage.widthProperty, stage.heightProperty) { 
    // Maintain a square plot with padding 
    val w = stage.getWidth 
    val h = stage.getHeight 
    val extra = DEF_PAD + 0.5 * Math.abs(w - h) 
    if (w > h) { 
     new Insets(DEF_PAD, extra, DEF_PAD, extra) 
    } else if (h > w) { 
     new Insets(extra, DEF_PAD, extra, DEF_PAD) 
    } else { 
     new Insets(DEF_PAD) 
    } 
}) 

(Scala編寫的boundValue僅僅是創建一個程序,並把可變參數的依賴列表中綁定)

相關問題