JavaFX CSS WARNING: CSS Error parsing file : ... : Expected LBRACE at

11,263

The @charset rule is not supported by JavaFX CSS, which is only a subset of full W3C CSS. Try removing it.

@ Rules

Beginning with JavaFX 8u20, the CSS @import is also partially supported. Only unconditional import is supported. In other words, the media‑type qualifier is not supported. Also, the JavaFX CSS parser is non-compliant with regard to where an @import may appear within a stylesheet (see At‑rules). Users are cautioned that this will be fixed in a future release. Adherence to the W3C standard is strongly advised.

Share:
11,263
Cao Felix
Author by

Cao Felix

Updated on June 09, 2022

Comments

  • Cao Felix
    Cao Felix almost 2 years

    I recently ask a question about adding two vertical lines onto the JavaFX LineChart and now I am having issue with applying some style stuffs to the plots. I think this is a new question so I open a new thread.

    Add Two Vertical Lines to LineChart

    My question: How can I change different color of the series? I also want to change the background to be white.

    The following is the chart that I create (it extends LineChart):

    LineChartWithMarkers<Number, Number> chart = new LineChartWithMarkers<Number, Number>(xAxis, yAxis, dataset);
    
    xAxis.setLabel("time(s)");
    yAxis.setLabel("deg/s");
    
    chart.setStyle(".chart-series-line { -fx-stroke-width: 2px; -fx-effect: null; ");
    chart.setStyle(".default-color0.chart-series-line { -fx-stroke: blue; }");
    chart.setStyle(".default-color1.chart-series-line { -fx-stroke: red; }");
    chart.setStyle(".default-color0.chart-line-symbol { -fx-stroke: blue, blue; }");
    chart.setStyle(".default-color1.chart-line-symbol { -fx-stroke: red, red; }");
    chart.setStyle(".chart-legend { -fx-background-color: transparent; }");
    

    For some reason, those codes won't apply to the chart. So I try to use a CSS file.

    The following is the CSS file:

    @CHARSET "ISO-8859-1";
    
    .chart-series-line {
    -fx-stroke-width: 1px;
    -fx-effect: null;}
    
    .default-color0.chart-series-line { -fx-stroke: blue; }
    .default-color1.chart-series-line { -fx-stroke: red; }
    
    .default-color0.chart-line-symbol { -fx-background-color: blue, blue; }
    .default-color1.chart-line-symbol { -fx-background-color: red, red; }
    
    .chart-legend {
    -fx-background-color: transparent;
    -fx-font-size: 0.75em;}
    
    .chart-legend-item-symbol{
    -fx-background-radius: 2;}
    
    .chart-plot-background {
    -fx-background-color: transparent;}
    

    I try to follow Using JavaFX Charts: Styling Charts with CSS, but I get an error in the console is "WARNING: CSS Error parsing file : ... : Expected LBRACE at [1,9]"

    I just switch from JDK 7 to JDK 8 today so I am not sure if it has anything to do with that...

    Thanks for any help!