gpt4 book ai didi

kotlin - 在 TornadoFX 中,如何将布局分离到不同的类,然后在生成器中使用它们?

转载 作者:行者123 更新时间:2023-12-02 09:22:04 27 4
gpt4 key购买 nike

例如,我想要一个 TabPane,但我希望每个选项卡都在其单独的类中。有没有办法让这个与构建器一起工作?我想做这样的事情:

tabpane {
MyFirstTab()
MySecondTab()
etc.
}

最佳答案

一般情况下,您可以使用 add 命令从另一个 View 添加根节点:

add(SomeView::class)

你也可以注入(inject)一个View并添加它:

val someView: SomeView by inject()

override val root: borderpane {
center {
add(someView)
}
}

addthis += someView 相同。这里发生的是框架找到 View 的 root 节点并将其附加到父节点的 children 属性。它还知道像 BorderPane 这样的特殊容器,因此当您在 center 构建器等中添加内容时它会做正确的事情。

但是,TabPane 采用的是 Tab 实例,它们不是节点。您需要使用 tab 构建器添加选项卡并为其分配一些内容。构建者足够聪明,能够理解如果您在选项卡内执行 add,它应该分配给选项卡的 content 属性。因此你可以这样写:

tab("My First Tab") {
add(MyFirstTab::class)
}

或者如果您已经有了要分配的内容实例:

tab("My First Tab") {
add(myFirstTab)
}

MyFirstTab 类必须是 ViewFragment

关于kotlin - 在 TornadoFX 中,如何将布局分离到不同的类,然后在生成器中使用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41789232/

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