Pie*_*rre 3 javafx kotlin tornadofx
我在一个由整数属性控制的视图中有一个标签,当值为负时它显示一个减号,当值为正时它不显示。但是,我希望标签显示“+5”、“-3”...
以下面的代码为例
import javafx.beans.property.SimpleIntegerProperty
import tornadofx.*
class MyView : View() {
val negProp = SimpleIntegerProperty(-3) // this prop is in a ItemViewModel
val posProp = SimpleIntegerProperty(+4) // this prop is in a ItemViewModel
override val root = hbox {
label(negProp) // shows - 3
label(posProp) // shows 4
}
}
Run Code Online (Sandbox Code Playgroud)
一旦属性发生变化,有没有办法格式化文本?谢谢你。
您可以创建一个字符串绑定来保存要在标签中显示的值,然后将标签的 value 属性绑定到该值:
val prop = SimpleIntegerProperty(1)
val propDesc = prop.stringBinding { "%+d".format(it) }
Run Code Online (Sandbox Code Playgroud)
现在你可以这样做:
label(propDesc)
Run Code Online (Sandbox Code Playgroud)
每当属性更改值时,标签就会更新。
你当然也可以内联它:
label(prop.stringBinding { "%+d".format(it) })
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
323 次 |
| 最近记录: |