JavaFX - 显示禁用标签的背景
JavaFX - Display background of a disabled Label
使用 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);
}
您遇到这种情况,因为 :disabled
控件的 -fx-opacity
属性默认设置为 0.4
。
您可以将选择器更正为
.disabled-label:disabled {
-fx-background-color: rgb(252,252,252);
-fx-opacity: 1;
}
这将向您显示具有所需背景颜色的禁用 Label
,但是 由于移除了不透明度,文本颜色将与非禁用标签上的颜色相同.
解决方法是通过使用 rgba
:
定义不透明度,直接为禁用的选择器设置 -fx-text-fill
属性
.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 颜色部分
使用 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);
}
您遇到这种情况,因为 :disabled
控件的 -fx-opacity
属性默认设置为 0.4
。
您可以将选择器更正为
.disabled-label:disabled {
-fx-background-color: rgb(252,252,252);
-fx-opacity: 1;
}
这将向您显示具有所需背景颜色的禁用 Label
,但是 由于移除了不透明度,文本颜色将与非禁用标签上的颜色相同.
解决方法是通过使用 rgba
:
-fx-text-fill
属性
.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 颜色部分