2017-04-23 69 views
-3

我試過以下樣式應用到我的複選框造型JavaFX的複選框

.check-box .box { 
    -fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, -fx-white; 
} 

.check-box:selected .mark { 
    -fx-background-color: -fx-colour-white; 
} 

.check-box:selected .box { 
    -fx-background-color: -fx-blue; 
} 

的目標是有一個白色的複選框以灰色邊緣,當複選框被選中有一個藍色的背景和白色的刻度。當我應用這些風格時,我會得到我想要的結果。然而執行以下步驟時,一個奇怪的事情發生了:
1-點擊複選框以選擇
2 - 點擊複選框取消選中
複選框消失,如果我在窗格中點擊別的地方纔會再次出現。

當它被第一次渲染,然後當它被選中時,您可以在複選框的下方看到圖像。

Checkbox in normal stateSelected CheckboxDeselected Checkbox

+1

您的CSS似乎是錯誤的,我得到警告:解決'-fx-background-color'從規則'* .check-box * .box''查找時無法解析'-fx-white' – user1803551

回答

0

我不認爲這個問題來自於您的樣式表,我認爲這是由於您的Java代碼不好操作,你說:

的複選框會消失,只會在窗格中點擊其他地方時纔會再次出現。

所以你窗格開始,看看是否有相關的事件,以及有關的風格,你的方法是幾乎正確的,這是我會如何着手:

.check-box .box { 

-fx-background-color: white; 
-fx-border-color:grey; 
-fx-border-radius:3px; 

} 

.check-box:selected .mark { 

-fx-background-color: white; 

} 

.check-box:selected .box { 

-fx-background-color: #28a3f4; 
} 

好運氣 !