Справочная информация
Некоторая информация о предпочтениях содержится в JavaFX. Справочное руководство по CSS:
стиль из таблицы стилей пользовательского агента имеет более низкий приоритет, чем значение, установленное из кода, который имеет более низкий приоритет, чем таблица стилей сцены или родительского элемента. Встроенные стили имеют наивысший приоритет. Таблицы стилей из родительского экземпляра считаются более специфичными, чем стили из таблиц стилей сцены.
Также обратите внимание, что приложение имеет только одну таблица стилей пользовательского агента, которая обычно является встроенной стандартной таблицей стилей для JavaFX (например, modena.css для JavaFX 8). Обычно приложения не переопределяют эту таблицу стилей.
Таким образом, ваша таблица стилей сцены, которая устанавливает текстовую заливку метки, будет иметь предпочтение перед встроенным кодом, который устанавливает текстовую заливку метки, и правило css вступит в силу всякий раз, когда внутренняя реализация JavaFX решит применить Css к графу сцены.
Возможные решения
Привязка
Хакерский способ обойти это - следующее утверждение:
customizedLabel.textFillProperty().bind(colorPicker.valueProperty());
Это работает, потому что связанное значение не может быть установлено. После выполнения привязки реализация CSS не может сбросить заливку метки на другое значение.
Позаботьтесь о правилах стиля
Другой способ справиться с этим — убедиться, что вы не установили -fx-text-fill
в таблице стилей сцены для меток, для которых вы хотите настроить заливку текста в коде. По сути, это решение Roland «myclass» или «удалить метку» styleclass.
Измените таблицу стилей UserAgent
Вы также можете скопировать стандартную таблицу стилей JavaFX, изменить ее напрямую и установить в своем приложении с помощью setUserAgentStylesheet, после чего вы сможете переопределить в коде любые настройки css, сделанные таблицей стилей пользовательского агента. Я бы рассмотрел это только в том случае, если вы выполняете развертывание в контролируемой среде выполнения JavaFX (например, в качестве автономного развертывания приложения) и можете вносить изменения в таблицу стилей пользовательского агента всякий раз, когда вы обновляете среду выполнения.
person
jewelsea
schedule
19.01.2015