简体   繁体   English

Tornadofx:在 runAsync 任务期间更新 label 文本 (FXML)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM