我有一个扩展 BorderPane 的自定义节点:
package main.resources.nodes;
import ...
public class DragNode extends BorderPane {
public DragNode () {
setNodes();
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/main/resources/fxml/DragNode.fxml"));
fxmlLoader.setController(this);
fxmlLoader.setRoot(this);
try {
fxmlLoader.load();
} catch (IOException e) {
e.printStackTrace();
}
}
private void setNodes() {
Circle inpNode = new Circle();
this.getChildren().add(inpNode);
inpNode.setRadius(10.0);
inpNode.setCenterX(this.getBoundsInParent().getMaxX());
inpNode.setCenterY(this.getBoundsInParent().getMaxY() / 2.0);
System.out.println(this.getBoundsInParent()); // Prints 'BoundingBox [minX:0.0, minY:-5.0, ... ]'
System.out.println(this.getParent()); // Prints null
System.out.println(this.getChildren()); // Prints 1
}
}
我想在 DragNode的右中边缘创建一个圆圈——即 BorderPane 的右中边缘。
当我将圆的位置设置为 this.getBoundsInLocal().getMaxX 或 inpNode.getBoundsInParent().getMaxX 时,它似乎永远不会返回正确的值。
如何获得该类正在扩展的 BorderPane 的宽度?
提前致谢。我希望这个问题是有道理的!