簡體   English   中英

當字符串變量更改 TornadoFX 時更改 TextArea 文本

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM