2017-03-13 101 views
3

的style.css改变CSS变量JavaFX的颜色

* { 
     -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控制器的变量?非常感谢

回答

1

已全局定义的颜色(-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; 
}