gpt4 book ai didi

kotlin - TornadoFX 加载多个 FXML 文件

转载 作者:行者123 更新时间:2023-12-02 13:28:50 32 4
gpt4 key购买 nike

我正在使用 Kotlin 和 TornadoFX 开发一个 UI,其中有一个“主要”部分,并且根据我按下 View 的“主要”部分(当前是 AnchorPane)的哪个按钮应该改变如下:
Content of the main view when starting
Content after pressing a button
我尝试加载 2 个 FXML 文档并将内容添加到我的 Main-Anchorpan 中,如下所示:

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 文件创建一个新 View 解决了这个问题:

class MainProjectView : View("My View") {
override val root: HBox by fxml()
}
然后在我的 MainViewClass 中注入(inject) View 并将其添加到那里:
    val mainProjectView: MainProjectView by inject()

init {
mainPane += mainProjectView
}

关于kotlin - TornadoFX 加载多个 FXML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62536770/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com