JavaFX - 显示禁用标签的背景

时间:2017-05-17 06:38:14

标签: java css javafx label fxml

使用JavaFX,我想显示一个带有已定义背景颜色的标签(禁用时,我的标签背景变得透明),我尝试了下面的代码,但仍然无法正常工作。 ..你有一些提示吗? - 另一个线程告诉我做setEditable(false),但这种方法在我的情况下并没有被占用。

FXML:

<Label styleClass="disable_backgrounded" layoutX="32.0" layoutY="23.0" prefHeight="25.0"
       style="-fx-background-color: rgb(252,252,252);-fx-padding: 5px;" text="General" textFill="#aa0000">
           <font>
                <Font name="System Bold" size="14.0"/>
           </font>
</Label>

CSS:

.disable_backgrounded:disabled {
    -fx-background-color: rgb(252,252,252);
}

1 个答案:

答案 0 :(得分:2)

您遇到此问题,因为默认情况下-fx-opacity控件的:disabled属性设置为0.4

您可以将选择器更正为

.disabled-label:disabled {
    -fx-background-color: rgb(252,252,252);
    -fx-opacity: 1;
}

会显示已禁用的Label具有所需的背景颜色,但会因为删除的不透明度而显示,文本颜色将与未禁用的标签相同。< / p>

通过使用-fx-text-fill定义不透明度,解决方法可以直接为禁用的选择器设置rgba属性:

.disabled-label:disabled {
    -fx-background-color: rgb(252,252,252);
    -fx-opacity: 1;
    -fx-text-fill: rgba(170, 0, 0, 0.4);
}

以下是rgba(170, 0, 0, 0.4) #aa0000的RGB版本,其中定义了0.4 alpha。

参考:JavaFX CSS Reference Guide:RGB颜色部分