我是誰從的JavaFX 1.3傳來階新手,這是我在計算器的第一篇文章結合使用條件邏輯函數在Scala中
在JavaFX 1.3,我可以做這樣的事情
property : bind if (condition) value1 else value2
在斯卡拉,我試圖做這樣的事情:
property <== function1
def function1() = {
if (condition)
value1
else
value2
}
但是,它似乎並沒有動態工作。在舞臺出現時,功能條件下的表達式僅評估一次。我很期待這個表達式中的值可以實時評估。
具體而言,我想調整某些限制,並使用綁定來實現它。所以我希望綁定函數能夠繼續評估表達式,並在調整其他東西時給予我合適的寬度。
無論如何,我將粘貼下面的實際代碼:
var stageWidth = DoubleProperty(0)
var stageHeight = DoubleProperty(0)
stageWidth <== stage.scene.width
stageHeight <== stage.scene.height
var origStageWidth = DoubleProperty(stage.scene.width.toDouble)
val origStageHeight = DoubleProperty(stage.scene.height.toDouble)
val origTextClipperWidth = DoubleProperty(textClipper.width.toDouble)
val origTextClipperHeight = DoubleProperty(textClipper.height.toDouble)
val minWidth = DoubleProperty(100)
val origButtonWidth = DoubleProperty(button.prefWidth.toDouble)
textClipper.width <== resize
def resize() ={
var boolResult = (stageWidth - origStageWidth) + origTextClipperWidth > minWidth
if (boolResult.value) {
(stageWidth - origStageWidth) + origTextClipperWidth
} else {
minWidth
}
}
textClipper.height <== (stageHeight - origStageHeight) + origTextClipperHeight
在此先感謝您的幫助。
從[ScalaFx的主頁(http://code.google.com/p/scalafx /):'顏色<==當(懸停)選擇Color.GREEN否則Color.RED' – senia
謝謝senia,我也發現它幾天前,它的工作原理 –