我有一个自动完成组合框,可以很好地工作,但是runAsync
操作完成后,建议列表不会更新。
import javafx.beans.property.SimpleObjectProperty
import javafx.collections.ObservableList
import tornadofx.*
class TestBox : View("My View") {
var treatment = SimpleObjectProperty<String>()
var treatmentList = SimpleObjectProperty<ObservableList<String>>()
override val root = borderpane {
center {
form {
fieldset {
field("Fruit") {
combobox(treatment, treatmentList.value) {
makeAutocompletable()
}
}
}
}
}
}
init {
runAsync {
listOf("Rice", "beans", "Yams").observable()
} ui {
treatmentList.set(it)
}
}
}
我错过了什么?谢谢。
您没有使用ObservableList
。您正在更改包含列表的属性的内容。组合框永远不会知道该treatmentList
属性,因此无法对其进行观察。尝试制作treatmentList
一个ObservableList<String>
。然后,您可以treatmentList.setAll(it)
在runAsync
sui
块中进行。
import javafx.beans.property.SimpleObjectProperty
import tornadofx.*
class TestBox : View("My View") {
var treatment = SimpleObjectProperty<String>()
var treatmentList = mutableListOf<String>().observable()
override val root = borderpane {
center {
form {
fieldset {
field("Fruit") {
combobox(treatment, treatmentList) {
makeAutocompletable()
}
}
}
}
}
}
init {
runAsync {
listOf("Rice", "beans", "Yams")
} ui {
treatmentList.setAll(it)
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句