CSS + JavaFX: не удалось разрешить X при разрешении поиска для Y - PullRequest
0 голосов
/ 01 февраля 2019

Я новичок в CSS и пытаюсь создать MWE для диаграммы в JavaFX.Я был в состоянии заставить это работать в некоторых случаях, но мои проблемы всплывают, когда я пытаюсь определить переменные в корне.В конечном итоге я хочу обновить значения chart0-color и chart1-color в коде, но сейчас я пытаюсь просто определить их как переменные в .css.

Я запустил его через CSSLintи он выдал некоторые предупреждения о смежных классах, но без ошибок.

Если я заменим -chart0-color и -chart1-color любой другой цветной строкой, такой как red или green, проблема исчезнет.

Вы видите какие-либо проблемы в моем css?

dummy.css:

.root{
    -chart0-color: #ff0000;
    -chart1-color: #00ff00;
}

.default-color0.chart-legend-item-symbol { -fx-background-color:    -chart0-color;}
.default-color0.chart-series-line {-fx-stroke:                      -chart0-color;}
.default-color0.chart-series-area-line {-fx-stroke:                 -chart0-color;}
.default-color0.chart-series-area-fill {-fx-fill:                   -chart0-color;}

.default-color1.chart-legend-item-symbol { -fx-background-color:    -chart1-color;}
.default-color1.chart-series-line {-fx-stroke:                      -chart1-color;}
.default-color1.chart-series-area-line {-fx-stroke:                 -chart1-color;}
.default-color1.chart-series-area-fill {-fx-fill:                   -chart1-color;}

CSSAreaChartMWE.java:

package csstest;

import java.util.function.Function;

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.chart.AreaChart;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.XYChart;
import javafx.scene.chart.XYChart.Series;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class CSSAreaChartMWE extends Application {

    private ObservableList<XYChart.Data<Number, Number>> functionToData(Function<Double, Double> f, double minx, double maxx) {
        ObservableList<XYChart.Data<Number, Number>> list = FXCollections.observableArrayList();

        double dx = (maxx-minx)/(100);
        double x = minx;

        while (x < maxx) {
            list.add(new XYChart.Data<>(x, f.apply(x))); x+=dx;
        }
        return list;
    }


    @Override
    public void start(Stage primaryStage) throws Exception {

        double minx = 0;
        double maxx = 6*Math.PI;
        double amp = 5;
        double period = (maxx-minx)/6;

        Series<Number, Number> sin = new Series<>("sin", functionToData((x) -> amp*Math.sin(x/period), minx, maxx));
        Series<Number, Number> cos = new Series<>("cos", functionToData((x) -> amp*Math.cos(x/period), minx, maxx));


        ObservableList<Series<Number, Number>> series = FXCollections.observableArrayList();
        series.add(sin);
        series.add(cos);

        NumberAxis xAxis = new NumberAxis();
        NumberAxis yAxis = new NumberAxis();
        AreaChart chart = new AreaChart(xAxis, yAxis, series);
        chart.getStylesheets().add(getClass().getResource("dummy.css").toExternalForm());
        chart.setStyle("chart1-color: black; chart2-color: red");

        VBox box = new VBox();
        box.getChildren().add(chart);
        Scene scene = new Scene(box);

        primaryStage.setScene(scene);
        primaryStage.show();

    }

    public static void main(String [] args) {
        launch(args);
    }

}

и, наконец, ошибки:

WARNING: Could not resolve '-chart0-color' while resolving lookups for '-fx-fill' from rule '*.default-color0.chart-series-area-fill' in stylesheet file:/*****/csstest/dummy.css
Jan 31, 2019 6:01:09 PM javafx.scene.CssStyleHelper calculateValue
WARNING: Could not resolve '-chart0-color' while resolving lookups for '-fx-stroke' from rule '*.default-color0.chart-series-area-line' in stylesheet file:/*****/classes/csstest/dummy.css
.......
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...