gpt4 book ai didi

tornadofx - 在 TornadoFX 中为 VBox 添加边框样式

转载 作者:行者123 更新时间:2023-12-02 14:59:39 26 4
gpt4 key购买 nike

在我的 TornadoFX 应用程序的 View 中,我有一个边框 Pane ,在 View 的左侧和右侧有一个 VBox(中间没有任何内容)。现在,每个 VBox 都有相同的背景颜色,所以它们混合在一起。我想展示两个 VBox 之间的某种分离(即,其中一个 VBox 具有稍暗的色调、边框颜色或两者)。有人碰巧知道如何向 vbox 添加边框样式吗?或者添加背景颜色?

为澄清起见,我正在寻找一种在我的 View 类定义主体内执行此操作的方法,因此我没有使用 CSS 或 FXML 进行样式设置。

最佳答案

最好的方法是创建一个类型安全的样式表,在其中为每个 vbox 定义一个类并将这些类分配给 vbox。这是一个完整的应用程序,包含样式表、应用程序定义和主视图:

class MyApp : App(MainView::class, MyStyles::class)

class MyStyles : Stylesheet() {
companion object {
val leftBox by cssclass()
val rightBox by cssclass()
}

init {
leftBox {
backgroundColor += c("#cecece")
borderColor += box(c("#a1a1a1"))
minWidth = 200.px
}

rightBox {
backgroundColor += c("#fefefe")
borderColor += box(c("#222222"))
minWidth = 200.px
}
}
}

class MainView : View("My View") {
override val root = borderpane {
setPrefSize(800.0, 600.0)

left {
vbox {
addClass(MyStyles.leftBox)
}
}
right {
vbox {
addClass(MyStyles.rightBox)
}
}
}
}

Illustration of the above code

如果您对样式表过敏,您可以将这些属性设置为内联或使用内联样式表:

class MainView : View("My View") {
override val root = borderpane {
setPrefSize(800.0, 600.0)

left {
vbox {
style {
backgroundColor += c("#cecece")
borderColor += box(c("#a1a1a1"))
minWidth = 200.px
}
}
}
right {
vbox {
style {
backgroundColor += c("#fefefe")
borderColor += box(c("#222222"))
minWidth = 200.px
}
}
}
}
}

最后,您可以配置节点的相应属性,而不是应用样式。我不会举个例子,因为你真的不应该这样做:)

关于tornadofx - 在 TornadoFX 中为 VBox 添加边框样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50728991/

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