TornadoFX:与其他库一起使用的Type-Safe CSS

时间:2017-05-20 06:56:11

标签: css javafx kotlin tornadofx

我是Kolin和TornadoFX的新手,我目前正在试验它的一些功能。 我想使用JFoenix-Library并使用TornadoFX的类型安全CSS功能设置其控件的样式。但我不知道如何在给定JFoenix控件的CSS类的情况下修改样式。

例如,JFXDecorator具有默认的CSS类jfx-decorator。要更改标题栏的背景颜色,我必须修改类jfx-decorator-buttons-container。我怎么能用TornadoFX做到这一点?在.css文件中我只会使用

.jfx-decorator-buttons-container {
  -fx-background-color: red;
}

TornadoFX可以实现吗?

1 个答案:

答案 0 :(得分:2)

您提及了类jfx-decoratorjfx-decorator-buttons-container,但您的示例CSS使用了类jfx-decorator-buttonscontainer。我不确定你真正想要哪些课程,但我会添加后两者,因为那样会从你的例子中产生CSS。

class Styles : Stylesheet() {
    companion object {
        val jfxDecoratorButtons by cssclass()
        val container by cssclass()
    }

    init {
        jfxDecoratorButtons and container {
            backgroundColor += Color.RED
        }
    }
}

更新:您更改了问题中的代码,因此以下是生成该输出的更新版本:

class Styles : Stylesheet() {
    companion object {
        val jfxDecoratorButtonsContainer by cssclass()
    }

    init {
        jfxDecoratorButtonsContainer {
            backgroundColor += Color.RED
        }
    }
}

Camel cased选择器会自动转换为带有连字符的低位。您还可以在cssclass委托功能中指定确切的名称:

val myCssClass by cssclass("my-slightly-different-css-class")

另请注意,由于backgroundColor属性接受多个值,因此您必须"添加"使用+=将颜色列入颜色列表。这是接受多个值的所有属性的通用模式。