css – JavaFX禁用元素样式

前端之家收集整理的这篇文章主要介绍了css – JavaFX禁用元素样式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个包含一些数据的组合框.
public class Test extends Application {
    public static final String[] items = "One Two Three".split(" ");
    @Override
    public void start(Stage primaryStage) throws Exception {
        final ComboBox<String> Box = new ComboBox<>(FXCollections.observableArrayList(items));
        Box.getSelectionModel().selectFirst();

        primaryStage.setScene(new Scene(Box));
        primaryStage.show();
    }
}

如果我设置组合框禁用它会变灰但我需要将文本设置为黑色.谷歌说我需要将不透明度设置为1.0.

Box.setDisable(true);
Box.setStyle("-fx-opacity: 1.0;");

没有任何反应.它也变灰了.

即使我将text-fill属性设置为黑色,它也会变灰.

Box.setDisable(true);
Box.setStyle("-fx-opacity: 1.0; -fx-text-fill: black;");

怎么了?如何更改已禁用组合框的文本颜色

解决方法

禁用属性从场景图节点级联到其子节点,因此组合框的所有子节点都有效地拾取它们:禁用的CSS样式.因此,例如,显示所选项目的标签使用其禁用样式,其不透明度设置为0.4.

要实现你想要的,做

.combo-Box:disabled,.combo-Box:disabled > * {
  -fx-opacity: 1.0 ;
}

在外部CSS文件中.

猜你在找的CSS相关文章