如何去除饼图中切片之间的白色边框?

4
是否可能在JavaFX的饼图中去掉饼片之间的白色边框? White border 我无法使用以下样式来实现它:
.chart-pie {
    -fx-border-width: 0px;
}

1
请分享你的代码。 - Nikolas Charalambidis
2
我认为这个问题已经得到了回答。 尝试使用以下链接: https://stackoverflow.com/questions/23736918/javafx-piechart-boundary-colors?rq=1 - Andres Paul
@Nikolas 这不相关,只是一个普通的饼图,没有任何特殊的东西。 - TheZopo
3
可能是JavaFx PieChart边界颜色的重复问题。 - HamishD
1
我认为这个问题与https://stackoverflow.com/questions/23736918/javafx-piechart-boundary-colors略有不同,因为要删除白线(即边框),您必须跟踪饼图大小-1的颜色,并使用前一个切片的颜色填充每个边框实例,不是吗? - Timothy Lee Russell
1
这不是重复的,因为期望的结果不是分隔部分的彩色边框,而是它们之间的间隙宽度本身。 - Nikolas Charalambidis
2个回答

6
似乎PieChart有一个内嵌效果,我是通过以下方式实现的:
.chart-pie {
    -fx-background-insets: 0;
    -fx-border-width: 0;
}

饼图

虽然不是完美的,但对我来说已经足够了。


3

默认情况下,部分之间存在间隙,不幸的是,我没有找到如何更改其宽度的方法。但是,您可以创建一个边框来填充该部分周围的空白区域 (-fx-border-width: 1px),并使用其颜色 (-fx-border-color: derive(-fx-pie-color, 0%))。请创建此样式表文件。

.chart-pie {
    -fx-border-color: derive(-fx-pie-color, 0%);
    -fx-border-width: 1px;
}

将其包含在场景中。
Scene scene = new Scene(new Group());
scene.getStylesheets().add("style.css");

以下图片显示了结果。可以自由调整数值以获得最佳效果。 enter image description here 编辑:我发现 -fx-background-insets 控制逗号分隔的值之间的大小,正如文档所述:
一系列大小值或四个大小值的集合,由逗号分隔。单个大小值表示所有插入都相同。否则,每个插入的四个值按顺序给出:上、右、下、左。系列中的每个逗号分隔值或值集应用于相应的背景颜色。
因此,以下样式应该会给你完全相同的结果:
.chart-pie {
    -fx-background-insets: 0;
    -fx-border-width: 0;
}

编辑2:似乎@TheZopo更快一些。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接