1
我是kotlin和tornadoFX的新手。 在TornadoFX指南,一個切換按鈕可以用下面的建立:tornadoFX togglebutton沒有文本屬性
togglebutton("OFF").action { text = if (isSelected) "ON" else "OFF" }
但是,當我同一代碼複製到我的IDE,有錯!
似乎有在tornadoFX在切換按鈕沒有文字的財產?
我是kotlin和tornadoFX的新手。 在TornadoFX指南,一個切換按鈕可以用下面的建立:tornadoFX togglebutton沒有文本屬性
togglebutton("OFF").action { text = if (isSelected) "ON" else "OFF" }
但是,當我同一代碼複製到我的IDE,有錯!
似乎有在tornadoFX在切換按鈕沒有文字的財產?
看來我們有點急於用新的.action
語法更新指南,所以本指南中的示例實際上是錯誤的。正確的代碼是:
togglebutton("OFF") {
action {
text = if (isSelected) "ON" else "OFF"
}
}
究其原因,指南中的例子是錯誤的,是當你調用togglebutton("OFF").action { .. }
,那麼action {}
this
裏面實際上是圍繞的容器,而不是按鈕。
對於不在按鈕本身上操作的操作,簡短的語法很好,但是如果您需要操作按鈕,則需要使用完整的語法,以便您的代碼在按鈕上下文中執行。
在另一方面,它可能是更地道創建stringbinding代表按鈕狀態,而不是在行動回調手動更新它:
togglebutton {
val stateText = selectedProperty().stringBinding {
if (it == true) "ON" else "OFF"
}
textProperty().bind(stateText)
}
我明白了。非常感謝! – CSY
不客氣。感謝每一個報告的問題和問題:) –