Я пытаюсь связать некоторые фигуры, поэтому, когда я перетаскиваю круг, линия также будет следовать за ним.Круг перемещается, когда я перетаскиваю его, но линия не следует.Я пытаюсь использовать .bind, но, похоже, ничего не делает.Вот некоторые из соответствующих методов.
private Line connect(Line line, Circle startNode, Circle endNode) {
line.startXProperty().bind(startNode.centerXProperty());
line.startYProperty().bind(startNode.centerYProperty());
line.endXProperty().bind(endNode.centerXProperty());
line.endYProperty().bind(endNode.centerYProperty());
return line;
}
private void pointsToShapes() {
connect(leftArm, neckNode, leftHandNode);
leftHandNode.setCenterX(leftHand.x);
leftHandNode.setCenterY(leftHand.y);
neckNode.setCenterX(shoulder.x);
neckNode.setCenterY(shoulder.y);
}
leftHandNode.setOnMousePressed(mp);
leftHandNode.setOnMouseDragged(md);
//mouse pressed
EventHandler<MouseEvent> mp = new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent t) {
System.out.println("pressed");
sceneX = t.getSceneX();
sceneY = t.getSceneY();
translateX = ((Circle)(t.getSource())).getTranslateX();
translateY = ((Circle)(t.getSource())).getTranslateY();
}
};
//mouse dragged
EventHandler<MouseEvent> md = new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent t) {
System.out.println("dragged");
double offsetX = t.getSceneX() - sceneX;
double offsetY = t.getSceneY() - sceneY;
double newTranslateX = translateX + offsetX;
double newTranslateY = translateY + offsetY;
((Circle)(t.getSource())).setTranslateX(newTranslateX);
((Circle)(t.getSource())).setTranslateY(newTranslateY);
}
};