Не удалось разрешить '-fx-tab-border-color' при разрешении поиска для '-fx-background-color' из правила в таблице стилей

css javafx javafx-8 javafx-css

2888 просмотра

2 ответа

32 Репутация автора

Так как мои правила уже действуют, но я получаю эти ошибки без проблем. Я пытался понять решения, доступные в Интернете, но ни одно из них не помогло мне.

Jul 18, 2016 1:39:17 PM javafx.scene.CssStyleHelper calculateValue WARNING: Could not resolve '-fx-tab-border-color' while resolving lookups for '-fx-background-color' from rule '*.tab-pane>*.tab-header-area>*.control-buttons-tab' in stylesheet file ***style.css***

Получение вышеупомянутых и множество подобных предупреждений, из-за чего некоторые компоненты не могут загружаться должным образом. Использование Java1.8.0_66.

root в моем css файле выглядит так:

.root {

    -fx-base: #d0d0d0;

    -fx-background: #f4f4f4;

    -fx-control-inner-background: white;
    -fx-font-family:"Courier";
    -fx-font-size: 12;

    -fx-dark-text-color: black;
    -fx-mid-text-color: #292929;
    -fx-light-text-color: white;

    -fx-accent: #0093ff;

    -fx-focus-color: #0093ff;

    -fx-color: -fx-base;

    -fx-disabled-opacity: 0.9;

    -fx-hover-base: ladder(
        -fx-base,
        derive(-fx-base,20%) 20%,
        derive(-fx-base,30%) 35%,
        derive(-fx-base,40%) 50%
     );

    -fx-pressed-base: derive(-fx-base,-20%);

    -fx-focused-base: -fx-base;

    -fx-tab-border-color: -fx-box-border;

    -fx-background-color: inherit;
    -fx-background-radius: inherit;
    -fx-background-insets: inherit;
    -fx-padding: inherit;

    -fx-cell-hover-color: #cce3f4;

    -fx-cell-focus-inner-border: #85b9de;

    -fx-page-bullet-border: #acacac;    
    -fx-page-indicator-hover-border: #accee5;   
}

и он используется из:

.tab-pane > .tab-header-area > .control-buttons-tab {
    -fx-background-color: -fx-tab-border-color, -fx-inner-border, -fx-body-color;
    -fx-background-insets: 0, 1, 2;
    -fx-background-radius: 5 5 0 0, 4 4 0 0, 3 3 0 0;
    -fx-padding: 0.083333em 0.25em 0.083333em 0.25em; /* 1 3 1 3 */
}

это тот же файл CSS

Заранее спасибо!!

Автор: RAM World Источник Размещён: 18.07.2016 08:30

Ответы (2)


0 плюса

32 Репутация автора

Проблема связана с Java-кодом, написанным для запуска приложения. Родитель не был корневым элементом, Родитель был вложен в панель. Вот почему он смог разрешить CSS, это видно только в FX8, потому что в javafx2.2 для применения CSS не обязательно, чтобы Parent был фактическим корневым элементом. Он прекрасно работает в JavaFx2.2, если Parent не является корневым элементом.

Автор: RAM World Размещён: 25.07.2016 04:35

3 плюса

1431 Репутация автора

Недавно я тоже столкнулся с этой проблемой. Как говорит «Мир RAM», эта проблема возникает, когда a Nodeне является корневым элементом, но все еще получает доступ к предопределенным значениям в rootблоке. Простое решение этого состоит в том, чтобы расширить область действия селектора, чтобы javafx мог найти предопределенные значения. например;

.root > *
{
    /* add your predefined values here */
}

В этом случае он выбирает rootи каждого (вложенного) его потомка. Я перефразирую эту запись, поскольку она ясно показывает, что это корневые свойства / значения. Если вы хотите самую короткую запись, то подойдут и следующие:

*
{
    /* add your predefined values here */
}

В этом случае он выбирает каждый Node.

Хотя это старый пост, надеюсь, он кому-то помог.


РЕДАКТИРОВАТЬ

Не используйте первый метод ( root > *)! при использовании динамического корня javafx все равно будет жаловаться на неразрешенные правила / атрибуты. У *меня только второй метод ( ) работал без ошибок

Автор: n247s Размещён: 10.03.2018 09:50
Вопросы из категории :
32x32