私はJavaFXを数か月使用していますが、CSSとグラフについて質問があります。積み上げ棒グラフがあり、使用するシリーズがいくつかあります。たとえば、シリーズA、B、C、D、Eです。グラフを生成すると、一部のグラフなど、すべての系列がグラフに含まれるわけではありません。 A、B、Cがあり、他の人はBとEだけで、他の人は5つすべてを持つことができます。基本的に、私は使用しているデータセットに基づいてシリーズをプログラムで生成しています。
したがって、この場合、シリーズの色を各チャートで同じにする必要があります。これらを生成するとき、BとEしかない場合、これらの色を反映するcssクラス名は次のとおりです。
.default-color0.chart-barおよび.default-color1.chart-bar-ここでは、これらはシリーズの順序の色を設定するだけです-したがって、シリーズ1は "..color0.chart .."定義、シリーズ2"を取得します。 ..color1.chart .. "など。データを処理する前にどちらが最初になるかわからない場合は、コードでこれらを動的に設定する必要があります。
このために私が見つけた唯一の解決策は、積み上げ棒グラフのスタイルシートを、コンパイル前に作成したCSSファイルに設定することです。そして、これはうまく機能します。以下は、コードでこれを行う方法の例です。
myStackedBarChart.getStylesheets().add("/myapp/chartSeriesColors.css");
唯一の問題は、位置1のシリーズが不明であるため、可能なシリーズの各順列のCSSファイルを作成する必要があり、これが悪い解決策であることを知っています。
実行時にシリーズCSSを動的に設定する方法をどこでも調べましたが、これは見つかりませんでした。これを行う方法はありますか。基本的に、次のCSSクラス定義をそのように設定したい:
.default-color0.chart-bar { -fx-bar-fill: #<a color I would set at runtime>; }
.default-color1.chart-bar { -fx-bar-fill: #<a color I would set at runtime>; }
どんな助けでもいただければ幸いです。