栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JavaFX StackedBarChart自动在不同系列上重复使用相同的颜色:如何避免呢?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaFX StackedBarChart自动在不同系列上重复使用相同的颜色:如何避免呢?

颜色在8个系列之后被回收(原因是必须对定义的颜色数量进行一定的硬编码限制:JavaFX
CSS语法只是没有提供足够的语法来计算任意值,而对于超出该范围的系列限制需要定义的一些颜色)。

要为8号以后的系列创建颜色,您需要做两件事:在表示其他系列的节点上设置样式类,并为CSS中的样式设置样式。

SSCCE:

import java.util.Random;import javafx.application.Application;import javafx.scene.Scene;import javafx.scene.chart.CategoryAxis;import javafx.scene.chart.NumberAxis;import javafx.scene.chart.StackedBarChart;import javafx.scene.chart.XYChart.Data;import javafx.scene.chart.XYChart.Series;import javafx.scene.layout.BorderPane;import javafx.stage.Stage;public class StackedBarChartExample extends Application {    @Override    public void start(Stage primaryStage) {        StackedBarChart<String, Number> chart = new StackedBarChart<>(new CategoryAxis(), new NumberAxis());        Random rng = new Random();        int numSeries = 10 ;        int defaultColorsDefined = 8 ;        for (int i = 0; i < numSeries; i++) { Series<String, Number> series = new Series<>(); Data<String, Number> untreated = new Data<>("Untreated", rng.nextDouble()); series.getData().add(untreated); Data<String, Number> treated = new Data<>("Treated", rng.nextDouble()); series.getData().add(treated); series.setName("Series "+i); chart.getData().add(series); // add style classes for additional series beyond the default support: // Note this must be done after adding the series to the chart... if (i >= defaultColorsDefined) {     untreated.getNode().getStyleClass().add("default-color"+i);     treated.getNode().getStyleClass().add("default-color"+i); }        }        BorderPane root = new BorderPane(chart);        Scene scene = new Scene(root);        scene.getStylesheets().add("stacked-bar-chart.css");        primaryStage.setScene(scene);        primaryStage.show();    }    public static void main(String[] args) {        launch(args);    }}

然后只需按常规方法在CSS中定义一些颜色即可:

.default-color8.chart-bar {    -fx-bar-fill: black ;}.default-color9.chart-bar {    -fx-bar-fill: green ;}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/509496.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号