JavaFX图表点被切除(使用自己的绑定值)

JavaFX图表点被切除(使用自己的绑定值)

如您在图片中所见,最高和最低轴上的点仅可见一半。如果您需要更多代码段,请告诉我。我也尝试过用pane.setPadding修复它……但是什么也没发生。同样在CSS部分中!important什么也没做。

Java代码:

public DistrictsChart(TimePeriod timePeriod,Pane pane) {
    Futures.addCallback(Main.getInstance().getPersonRepository().getPlaceInfectedData(timePeriod,PersonState.SUSPECTED),(Callback<Map<String,Long>>) suspectedData ->
            Futures.addCallback(Main.getInstance().getPersonRepository().getPlaceInfectedData(timePeriod,PersonState.CONFIRMED),Long>>) confirmedData ->
                    Futures.addCallback(Main.getInstance().getPersonRepository().getPlaceInfectedData(timePeriod,PersonState.RECOVERED),Long>>) recoveredData ->
                            Futures.addCallback(Main.getInstance().getPersonRepository().getPlaceInfectedData(timePeriod,PersonState.DEATH),Long>>) deathData -> Platform.runLater(() -> {
                                // Clear old chart
                                pane.getchildren().clear();

                                CategoryAxis xAxis = new CategoryAxis();
                                xAxis.setLabel("Stadtteile");

                                NumberAxis yAxis = new NumberAxis("Infizierte",getMaxValue(suspectedData,confirmedData,recoveredData,deathData),1);
                                yAxis.setautoRanging(false);

                                StackedBarChart<String,Number> barChart = new StackedBarChart<>(xAxis,yAxis);

                                XYChart.Series<String,Number> dataSeriesSuspected = new XYChart.Series<>();
                                dataSeriesSuspected.getData().addAll(suspectedData.entryset().stream().map(e -> new XYChart.Data<String,Number>(e.getKey(),e.getvalue())).collect(Collectors.toList()));

                                barChart.getData().addAll(dataSeriesInfected,dataSeriesRecovered,dataSeriesDead,dataSeriesSuspected);

                                barChart.setLegendVisible(false);

                                pane.getchildren().add(barChart);
                            }),Main.getInstance().getMySQL().getPool()),Main.getInstance().getMySQL().getPool());
}

private int getMaxValue(Map<String,Long> suspected,Map<String,Long> confirmed,Long> recovered,Long> death) {
    Set<String> places = new HashSet<>();
    places.addAll(suspected.keySet());
    places.addAll(confirmed.keySet());
    places.addAll(recovered.keySet());
    places.addAll(death.keySet());

    return places.stream().mapToInt(s -> (int) (suspected.getOrDefault(s,0L) + confirmed.getOrDefault(s,0L)
            + recovered.getOrDefault(s,0L) + death.getOrDefault(s,0L))).max().orElse(0);
}

CSS代码:

.chart-content,.chart {
    -fx-padding: 2; <- Not Working
}

.chart .text {
    -fx-fill: primary-text-color;
}

.chart-series-area-line {
    -fx-stroke: primary-color;
}

.chart-area-symbol {
    -fx-background-color: primary-color;
}

.chart-vertical-grid-lines,.chart-horizontal-grid-lines {
    -fx-stroke: primary-background-color;
    -fx-stroke-dash-array: 1;
}

.axis {
    -fx-tick-mark-visible: false;
    -fx-minor-tick-visible: false;
    -fx-tick-label-gap: 8;
    -fx-border-color: bar-color;
}
zishanwangzhe 回答:JavaFX图表点被切除(使用自己的绑定值)

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2623223.html

大家都在问