更改css变量javafx颜色

gor*_*525 5 css java javafx

style.css

* {
        -color : #00A0B1;
        -white : #F5F5F5;
        -gray : #95A5A6;
        -darkGray : #7F8C8D;
        -black : #2C3E50;
        -abort : #7F8C8D;
    }

.root{
    -fx-background-color : -white;
    -fx-fill-width : true;
    -fx-color : -color;
    -fx-fill-width : true;
    -fx-font-family: 'Segoe UI';
    -fx-focus-color : transparent;
    -fx-faint-focus-color: transparent;
}
Run Code Online (Sandbox Code Playgroud)

我希望制作一个调色板,以便-color可以更改变量。有没有办法用javafx控制器更改变量?非常感谢

Jam*_*s_D 1

您全局定义的颜色(-color-white-gray等)称为“查找颜色”(请参阅​​文档)。您可以使用内联样式在运行时更改查找颜色的值。例如:

root.setStyle("-color: #ffff00 ;") 
Run Code Online (Sandbox Code Playgroud)

会将 的值设置-color为 黄色,root以及它包含的所有节点,除非这些节点被分配了特定值(在 CSS 语言中,查找的颜色是继承的)。

但请注意,您的 CSS 会将查找到的颜色值直接分配给所有节点(因为所有节点都与选择器匹配*)。因此,您可能只想在根节点上定义它们,以便节点将继承任何动态应用的值:

root.setStyle("-color: #ffff00 ;") 
Run Code Online (Sandbox Code Playgroud)