改变css变量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;
}

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

最佳答案 您全局定义的颜色(-color,-white,-gray等)称为“查找颜色”(参见
documentation).您可以使用内联样式在运行时更改查找颜色的值.例如.:

root.setStyle("-color: #ffff00 ;") 

将-color的值设置为黄色,用于root及其包含的所有节点,除非它们具有分配给它们的特定值(在CSS的语言中,查找颜色是继承的).

请注意,您的CSS会将查找的颜色值直接分配给所有节点(因为所有节点都与选择器*匹配).所以你可能只想在根节点上定义那些,这样节点就会继承任何动态应用的值:

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

    -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;
}
点赞