1
如何在翻譯的節點的中心之間繪製一條線?以下面的代碼片段爲例:Javafx 8在翻譯的節點之間繪製一條線
public class Test extends Application{
@Override
public void start(Stage primaryStage) {
StackPane root = new StackPane();
Circle circle1=new Circle(10, Color.GREEN);
root.getChildren().add(circle1);
Circle circle2=new Circle(10, Color.RED);
root.getChildren().add(circle2);
Scene scene = new Scene(root, 300, 250);
primaryStage.setScene(scene);
primaryStage.show();
circle1.setTranslateX(100);
Line line=new Line(circle1.getCenterX(), circle1.getCenterY(), circle2.getCenterX(), circle2.getCenterY());
root.getChildren().add(line);
}
public static void main(String[] args) {
launch(args);
}
}
運行此應用程序將清楚地顯示一個紅色和一個綠色圓圈。但是,不會有一條線,因爲圓的每個中心位於座標(0,0)處。儘管如此,由於其中一個圈子被翻譯,這些圈子並未互相掩蓋。這是行不通的:
Line line=new Line(circle1.getCenterX()+circle1.getTranslateX(), circle1.getCenterY()+circle1.getTranslateY(), circle2.getCenterX()+circle2.getTranslateX(), circle2.getCenterY()+circle2.getTranslateY());
最後,我們假設有一種方法繪製連接兩個圓的中心的直線。如果在繪製線後,我會調用circle2.setTranslateX(50);
,我如何確保circle2側的線的終點相應地移動?