Tornadofx:在 runAsync 任务期间更新标签文本 (FXML)
Tornadofx: update a label text (FXML) during an runAsync task
我正在使用 TornadoFX 和 FXML(没有 TornadoFx 的 DSL)开发一个简单的 UI。
只有一个大按钮调用内部带有 runasync
的函数,并且一切正常。
但是...我如何绑定标签文本来跟踪 TaskStatus(),例如标题?
MyApp.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...")
}
}
}
愚蠢的错误...
需要这个:
lblStatus.textProperty().bind( taskStatus.title )
而不是这个:
lblStatus.bind(taskStatus.title)
我正在使用 TornadoFX 和 FXML(没有 TornadoFx 的 DSL)开发一个简单的 UI。
只有一个大按钮调用内部带有 runasync
的函数,并且一切正常。
但是...我如何绑定标签文本来跟踪 TaskStatus(),例如标题?
MyApp.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...")
}
}
}
愚蠢的错误...
需要这个:
lblStatus.textProperty().bind( taskStatus.title )
而不是这个:
lblStatus.bind(taskStatus.title)