【发布时间】:2020-09-08 08:30:28
【问题描述】:
我知道如何在 BarChart 的每个条形顶部或内部添加文本
private void displayLabelForData(XYChart.Data<String, Number> data) {
final Node node = data.getNode();
final Text dataText = new Text(data.getYValue() + "");
node.parentProperty().addListener(new ChangeListener<Parent>() {
@Override
public void changed(ObservableValue<? extends Parent> ov, Parent oldParent, Parent parent) {
Group parentGroup = (Group) parent;
parentGroup.getChildren().add(dataText);
}
});
node.boundsInParentProperty().addListener(new ChangeListener<Bounds>() {
@Override
public void changed(ObservableValue<? extends Bounds> ov, Bounds oldBounds, Bounds bounds) {
dataText.setLayoutX(Math.round(bounds.getMinX() + bounds.getWidth() / 2 - dataText.prefWidth(-1) / 2));
//on top of each bar
dataText.setLayoutY(Math.round(bounds.getMinY() - dataText.prefHeight(-1) * 0.5));
}
});
}
或在每个栏内
dataText.setLayoutY(Math.round(bounds.getMinY() - dataText.prefHeight(-1) * -0.5));
我也知道如何使用 JavaFX 加载图像并将图像显示到 ImageView。
Image myImage = new Image("location.png");
ImageView viewImage = new ImageView();
viewImage.setImage(myImage);
现在假设我在 barChart 中有 5 个条形图,并且有 5 个图像。
现在我想知道是否可以在条形图的每个条形内添加每个图像。有什么我不知道的方法吗?
谢谢!
【问题讨论】:
-
不是同样的事情吗?
-
另外,将节点添加到条形图的一般机制不是很健壮(假设每个数据点的节点都包含在一个组中,父节点是在数据点构造函数之后的某个时间设置的完成等)。 stackoverflow.com/questions/38871202/… 显示了一种更 API 友好的折线图方法:我建议改用该方法。
-
好的,它会应用于条形图吗?
-
您可能需要稍微调整一下,但总体思路应该可行。
-
你又想让别人为你做你的工作,又找到了一个