[英]Change TextArea Text When String Variable Changes TornadoFX
我有一个带有字符串变量的控制器,我希望 TextArea 的文本值在控制器的字符串变量更改时更改。
class MyView: View() {
...
button("Run Test").action {
runAsync {
for(test in testList){
controller.updateText = "running" + test.name
run(test)
}
}
}
...
scriptRanArea = textarea {
text = controller.updateText
}
...
}
这是我知道如何完成此操作的最快方法,但我真的不知道您要使用哪种设计模式:
class MyView: View() {
val controller: MyController by inject()
override val root = vbox {
textarea(controller.myTextProperty)
}
}
class MyController: Controller() {
val myTextProperty = SimpleStringProperty()
}
当第一次引用时,inject 方法会自动在 TornadoFX 范围内找到控制器,或者如果没有找到则创建一个。 TornadoFX 文本区域构建器函数将字符串属性从控制器绑定到 TextArea,当它作为参数传入时。 但是请记住,在文本区域中书写现在将自动更改控制器属性中的值,反之亦然。 如果您不想要该功能,则必须更新您的问题以更具体地满足您的需求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.