有什么方法可以将节点绑定到直线的中点吗?

时间:2019-07-06 13:22:07

标签: java javafx

我需要做的是在一行的中间绘制一个文本。这是我最初想出的:

apply plugin: 'com.google.gms.google-services'

Text tWeight = new Text(Integer.toString(e.getWeight())); tWeight.setX((e.getEdge().getStartX() + e.getEdge().getEndX()) / 2); tWeight.setY((e.getEdge().getStartY() + e.getEdge().getEndY()) / 2); 返回一行。
问题在于返回的Line在两个Node之间也具有绑定,因此当我尝试获取其位置时,它将返回Line所在窗格的左上角的坐标。 有什么方法(或技巧)可以使这项工作从一开始?

预先感谢

1 个答案:

答案 0 :(得分:1)

DoubleExpressionDoubleProperty的超类型)提供了add(ObservableNumberValue)multiply(double)方法。您可以使用它们为(startX+endX)*0.5(或y的等效项)创建表达式:

Line l = e.getEdge();
tWeight.xProperty().bind(l.startXProperty().add(l.endXProperty()).multiply(0.5));
tWeight.yProperty().bind(l.startYProperty().add(l.endYProperty()).multiply(0.5));