!important
, скорее всего, требуется из-за specificity of your css rules в сравнении с правилами css стандартных таблиц caspian или modena (хотя мои навыки css ограничены с точки зрения оценки этого).
В SceneBuilder 1.1 есть css analyzer, который может помочь определить, какие правила и атрибуты css активируются. Это может помочь в отладке активации правил CSS в целом, хотя это не очень помогает в этом конкретном случае, к сожалению, поскольку вы не можете устанавливать стили на ячейки таблицы через SceneBuilder 1.1.
Один рабочий обход - это скопировать все правила css c-cse c-cse(), к сожалению, их очень много, и поместить правила в таблицу стилей пользователя. Подготовьте элемент выбора стиля .invalid-table-cell
к каждой из правил таблицы css в таблице стилей пользователя и измените правила в соответствии с требованиями для достижения желаемого внешнего вида. Это гарантирует, что ваш набор правил имеет правильный уровень специфичности, чтобы переопределить правила по умолчанию. Это, к сожалению, довольно сложный процесс, и, возможно, ваши переопределения !important
могут стать лучшим решением для вас.
Немного более простой способ настроить стили, чтобы переопределить предопределенные константы, например, что-то вроде ниже (я не пробовал и просто демонстрирует принцип как точный выбор и правила необходимо, может отличаться):
.invalid-table-cell {
-fx-selection-bar-text: goldenrod;
}
Поскольку большинство стилей ячейки таблицы по умолчанию определены с использованием -fx-text-fill: -fx-selection-bar-text;
, просто установка этого значения в соответствующее значение позволяет переопределить все эти стили ячейки таблицы по умолчанию. Но он переопределяет их все к одному и тому же значению, поэтому, если вам нужны разные значения для разных psuedo-состояний css, как в вашем вопросе, тогда вам нужно будет определить эти правила явно, как описано ранее.
Добавление '! Important' достигает желаемого эффекта, но мне интересно, почему мне нужно'! Important' вообще. –