Css JavaFX图表点被截断(使用自己的绑定值)

Css JavaFX图表点被截断(使用自己的绑定值),css,javafx,charts,axis,points,Css,Javafx,Charts,Axis,Points,如图所示,最高轴和最低轴上的点只有一半可见。如果您需要更多的代码片段,请告诉我。我还尝试用pane.setPadding修复它。。。但什么也没发生。也在CSS部分!重要的事什么也做不了 Java代码: public DistrictsChart(TimePeriod timePeriod, Pane pane) { Futures.addCallback(Main.getInstance().getPersonRepository().getPlaceInfectedData(timeP

如图所示,最高轴和最低轴上的点只有一半可见。如果您需要更多的代码片段,请告诉我。我还尝试用pane.setPadding修复它。。。但什么也没发生。也在CSS部分!重要的事什么也做不了

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), (Callback<Map<String, Long>>) confirmedData ->
                    Futures.addCallback(Main.getInstance().getPersonRepository().getPlaceInfectedData(timePeriod, PersonState.RECOVERED), (Callback<Map<String, Long>>) recoveredData ->
                            Futures.addCallback(Main.getInstance().getPersonRepository().getPlaceInfectedData(timePeriod, PersonState.DEATH), (Callback<Map<String, Long>>) deathData -> Platform.runLater(() -> {
                                // Clear old chart
                                pane.getChildren().clear();

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

                                NumberAxis yAxis = new NumberAxis("Infizierte", 0, 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()), Main.getInstance().getMySQL().getPool()), Main.getInstance().getMySQL().getPool());
}

private int getMaxValue(Map<String, Long> suspected, Map<String, Long> confirmed, Map<String, Long> recovered, Map<String, 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);
}
public districtshart(时段时段,窗格){
Futures.addCallback(Main.getInstance().getPersonRepository().getPlaceInfectedData(时间段,PersonState.疑似),(回调)suspectedData->
Futures.addCallback(Main.getInstance().getPersonRepository().getPlaceInfectedData(时间段,PersonState.CONFIRMED),(Callback)confirmedData->
Futures.addCallback(Main.getInstance().getPersonRepository().getPlaceInfectedData(时间段,PersonState.RECOVERED),(回调)recoveredData->
Futures.addCallback(Main.getInstance().getPersonRepository().getPlaceInfectedData(timePeriod,PersonState.DEATH),(Callback)deathData->Platform.runLater(()->{
//清除旧图表
pane.getChildren().clear();
CategoryAxis xAxis=新CategoryAxis();
xAxis.setLabel(“statteile”);
NumberAxis yAxis=新的NumberAxis(“Infizierte”,0,getMaxValue(suspectedData,confirmedData,recoveredData,deathData),1);
yAxis.setAutoRanging(假);
StackedBarChart barChart=新的StackedBarChart(xAxis,yAxis);
XYChart.Series DataSeriesSpected=新的XYChart.Series();
DataSeriesSpected.getData().addAll(suspectedData.entrySet().stream().map(e->new XYChart.Data(e.getKey(),e.getValue())).collect(Collectors.toList());
barChart.getData().addAll(dataSeriesInfected、dataSeriesRecovered、DataSeriesDed、DataSeriesSpected);
条形图。setLegendVisible(假);
pane.getChildren().add(条形图);
}),Main.getInstance().getMySQL().getPool()),Main.getInstance().getMySQL().getPool(),Main.getInstance().getMySQL().getPool(),Main.getInstance().getMySQL().getPool());
}
私有int getMaxValue(地图可疑、地图确认、地图恢复、地图死亡){
Set places=new HashSet();
places.addAll(可疑的.keySet());
places.addAll(confirm.keySet());
places.addAll(recovered.keySet());
places.addAll(death.keySet());
返回places.stream().mapToInt(s->(int)(可疑的.getOrDefault(s,0L)+已确认的.getOrDefault(s,0L)
+已恢复.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;
}
.chart内容,.chart{

-fx padding:2;为什么不让每个轴的上限比序列中的最大值大一步呢?因为看起来不太好。例如,输入“1”,其中一半是空的:。如果我把它举得稍微高一点,它看起来也不好:为什么不让每个轴的上限比序列中的最大值大一步呢?因为它看起来不好。例如,输入“1”,其中一半是空的:。如果我把它举得稍微高一点,它看起来也不好看: