Флажок в стиле JavaFX - PullRequest
       26

Флажок в стиле JavaFX

0 голосов
/ 01 сентября 2018

Я использую этот css-скрипт, который включает более 1001 *:

checkBox.setStyle("" +
            ".check-box:selected > .box {\n" +
            "    /* background color for selected checkbox */\n" +
            "    -fx-background-color: lime;\n" +
            "}\n" +
            "\n" +
            ".check-box > .box {\n" +
            "    /* background color of unselected checkbox */\n" +
            "    -fx-background-color: red;\n" +
            "}\n" +
            "\n" +
            ".check-box:selected > .box > .mark,\n" +
            ".check-box:indeterminate  > .box > .mark {\n" +
            "    /* modify mark color */\n" +
            "    -fx-background-color: blue;\n" +
            "}");

Но это не работает ....

Я использую Java 9

Спасибо за вашу помощь

Ответы [ 2 ]

0 голосов
/ 02 сентября 2018

С помощью метода setStyle () в JavaFX вы можете стилизовать состояние компонента по умолчанию с помощью кода CSS в коде класса, однако я не думаю, что вы можете изменить CSS выбранного состояния. Я бы порекомендовал просто дать узлу уникальный идентификатор с node.setID («someID»), а затем работать в реальном CSS-файле

0 голосов
/ 01 сентября 2018

Это не сработает. Свойство style может содержать только назначения свойств, но не селекторы.

Вы можете назначить эти цвета, используя комбинацию таблицы стилей и свойства style, хотя, используя искомые цвета (хотя работает только для цветов):

Таблица стилей CSS

.check-box {
    /* default properties */
    selected-box-color: black;
    box-color: black;
    mark-color: white;
}

.check-box:selected > .box {
    /* background color for selected checkbox */
    -fx-background-color: selected-box-color;
}

.check-box > .box {
    /* background color of unselected checkbox */
    -fx-background-color: box-color;
}

.check-box:selected > .box > .mark,
.check-box:indeterminate  > .box > .mark {
    /* modify mark color */
    -fx-background-color: mark-color;
}

Java-код

// overwrite colors from stylesheet
checkBox.setStyle("selected-box-color: lime; box-color: red; mark-color: blue;");
...