2017-04-23 43 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; 
} 

好运气 !