簡體   English   中英

TornadoFX 加載多個 FXML 文件

[英]TornadoFX load multiple FXML files

我正在使用 Kotlin 和 TornadoFX 開發一個 UI,其中有一個“主要”部分,並且根據我按下視圖的“主要”部分(當前是 AnchorPane)的哪個按鈕應該改變如下:

啟動時主視圖的內容

按下按鈕后的內容

我嘗試加載 2 個 FXML 文檔並將內容添加到我的 Main-Anchorpane,如下所示:

override val root: BorderPane by fxml("/views/MainView.fxml")
val contentContainer: AnchorPane by fxid("contentContainer")

val contentBtn1: AnchorPane by fxml("/views/MainViewProject.fxml")

val btnProject: JFXButton by fxid("btnProject")

init {
    btnProject.setOnAction {
        contentContainer += contentBtn1
    }
}

但我收到以下錯誤:

javafx.fxml.LoadException: Controller value already specified.

我通過為第二個 FXML 文件創建一個新視圖解決了這個問題:

class MainProjectView : View("My View") {
   override val root: HBox by fxml()
}

然后在我的 MainViewClass 中注入 View 並將其添加到那里:

    val mainProjectView: MainProjectView by inject()
    
    init {
        mainPane += mainProjectView
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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