首页 > 解决方案 > 如何增加 JavaFX PieChart 的半径

问题描述

我想增加 JavaFX 饼图的半径,因为默认尺寸呈现的图表太小。我知道(来自@ItachiUchiha 4 年前发布的答案)不可能通过如下调用直接操纵饼图的尺寸:

piechart = new PieChart(pieChartData);
piechart.setPrefHeight(600); // no effect
piechart.setPrefWidth(600); // no effect

@ItachiUchiha 发布的答案建议使用 Region 的实例,实际上以下确实实现了这一点:

Region region = new Region();
region.setMaxHeight(600);
region.setMaxWidth(600);
region.setPrefHeight(600);
region.setPrefWidth(600);
region.setMinHeight(600);
region.setMinWidth(600);

但是我无法将饼图放入 Region 的实例中。直觉上我试过:

region.getChildren().add(piechart);
and
Region region = new Region(piechart);

但这些在语法上是错误的。

我知道饼图正在正确呈现数据,因为它在代码中显示正常:

detailPane.getChildren().add(piechart);
piechart.setVisible(true); 

但这只是使用其默认半径呈现饼图。如何将饼图“链接”到 Region 的实例并根据需要调整其大小?

标签: javafxchartspie-chart

解决方案


我似乎通过在样式表中添加以下内容通过 .css 解决了这个问题:

.chart {
    -fx-pref-width: 916;
    -fx-pref-height: 620; 
    -fx-min-width: 916;
    -fx-min-height: 620;
    -fx-max-width: 916;
    -fx-max-height: 620;
}

.chart-content {
    -fx-padding: 20px;
}

图表尺寸与右侧拆分窗格的锚窗格大小完全匹配。结果是一个大小非常合适且比例合理的饼图,正好位于窗格的中心。


推荐阅读