Я пытаюсь создать пользовательское свойство стиля CSS для моего компонента, с несколькими значениями цвета, такими как -фксгендром. Но я застрял, несмотря на то, что я определяю свое свойство CSS, аналогичное свойству -fx-background-color, только первое значение цвета анализируется в объявлении CSS.
Это объявление CSS: < /p>
.default-chart-theme {
-jfc-default-paint-sequence: red,white,green,blue,yellow,orange,gray;
}
< /code>
И это объявление Cssmetadata в классе Java: < /p>
public final CssMetaData DEFAULT_PAINT_SEQUENCE = new CssMetaData("-jfc-default-paint-sequence", PaintConverter.SequenceConverter.getInstance(), new Paint[] { Color.RED } )
{
@Override
public boolean isSettable(StyleableChartViewer styleable)
{
return !cssDefaultPaintSequence.isBound();
}
@Override
public StyleableProperty
getStyleableProperty(StyleableChartViewer styleable)
{
return cssDefaultPaintSequence;
}
};
public final SimpleStyleableObjectProperty cssDefaultPaintSequence =
new SimpleStyleableObjectProperty(DEFAULT_PAINT_SEQUENCE, this, "cssDefaultPaintSequence", new Paint[] { Color.RED } );
< /code>
В getcssmetadata я также возвращаю это свойство, и оно также проанализировано, но вместо последовательности краски оно анализируется только как единое значение цвета.WARNING: Caught 'java.lang.ClassCastException: class javafx.scene.paint.Color cannot be cast to class [Ljavafx.css.ParsedValue; (javafx.scene.paint.Color and [Ljavafx.css.ParsedValue; are in unnamed module of loader 'app')' while converting value for '-jfc-default-paint-sequence' from rule '*.default-chart-theme' in stylesheet
< /code>
Любой совет, как создать такую собственность CSS, приветствуется. Я попытался Google, а также попытался получить некоторую информацию, используя недоумение в этой проблеме, но я не нашел ничего полезного для преодоления этой проблемы.
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/795 ... ple-values