2017-03-13 103 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; 
}