[英]Tornadofx: update a label text (FXML) during an runAsync task
I am working on a simple UI using TornadoFX and FXML (without TornadoFx's DSL).我正在使用 TornadoFX 和 FXML(没有 TornadoFx 的 DSL)开发一个简单的 UI。
There is only one big button who call a function with a runasync
inside and it's all working.只有一个大按钮调用 function 内部带有
runasync
并且一切正常。
But... How can I bind, eg, a label text to track TaskStatus(), eg, title?但是...我如何绑定例如 label 文本来跟踪 TaskStatus(),例如标题?
MyApp.kt我的应用程序.kt
class MainView : View() {
private val taskStatus = TaskStatus()
private val lblStatus: Label by fxid()
override val root : VBox by fxml("/views/main.fxml")
init {
lblStatus.bind(taskStatus.title) // ----> dummy's attempt: don't work
}
private fun check( host: String?, port: Int ) {
runAsync(taskStatus) {
updateTitle("Connecting...")
// Make something...
updateTitle("Checking system...")
// Make something...
updateTitle("Reading...")
// Make something...
updateTitle("Closing...")
}
}
}
Stupid mistake...愚蠢的错误...
Need this:需要这个:
lblStatus.textProperty().bind( taskStatus.title )
Instead of this:而不是这个:
lblStatus.bind(taskStatus.title)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.