设置javafx样式

Sue*_*rsi -2 java javafx

我尝试将以下样式应用于我的CheckBox

.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;
}
Run Code Online (Sandbox Code Playgroud)

目的是要有一个带有灰色边框的白色复选框,并选中该复选框以使其具有蓝色背景和白色刻度。当我应用这些样式时,我会得到想要的结果。但是,执行以下步骤时会发生奇怪的事情:
1-单击复选框以选择
2-单击复选框以取消选择
复选框消失,并且仅当我在窗格中的其他位置单击时才会再次出现。

首次渲染然后选中该复选框时,您可以在下面看到该复选框的图像。

复选框处于正常状态选定的复选框取消选中复选框

Bo *_*lim 5

我不认为问题出在您的StyleSheets上,我认为这是由于Java代码中的错误操作引起的,您说:

该复选框消失,并且仅当我单击窗格中的其他位置时才会再次出现

因此,从您的Pane开始,看看是否有相关事件,并且关于样式,您的方法几乎是正确的,这就是我应该如何进行的:

.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;
}
Run Code Online (Sandbox Code Playgroud)

祝好运 !