【问题标题】:JavaFX - Display background of a disabled LabelJavaFX - 显示禁用标签的背景
【发布时间】:2017-05-17 06:38:13
【问题描述】:

使用 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);
}

【问题讨论】:

    标签: java css javafx label fxml


    【解决方案1】:

    您遇到这种情况是因为: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 颜色部分

    【讨论】:

      猜你喜欢
      • 2019-10-14
      • 2014-01-09
      • 1970-01-01
      • 1970-01-01
      • 2012-03-30
      • 1970-01-01
      • 2020-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多