Wann und wann wird die Übersetzung verwendet? - Was ist der Unterschied zwischen der Übersetzung und den Layoutkoordinaten?

Wann wird translate verwendet und wann wird umgezogen, um einen Knoten zu verschieben? Am Ende des Tages scheinen sie dasselbe zu tun (visuell); Bewege den Knoten. die erste durch eine Übersetzung des Ursprungs (das x, y bleibt gleich), die zweite durch Ändern der x, y-Koordinaten. Angenommen, ich möchte einen Knoten an einer bestimmten Stelle auf dem Bildschirm verschieben. Soll ich node.relocate (x, y) oder node.setTranslateX (x), node.setTranslateY (y) verwenden?

Um zu demostrieren, womit ich meine, habe ich ein Beispielprogramm erstellt, mit dem Sie spielen können: Ein Rechteck auf dem Bildschirm, dessen Position durch 4 Schieberegler festgelegt wird (2 davon steuern das Layout x, y, die anderen beiden steuern die Übersetzung x, y). .

/* imports are missing */  
public class TransReloc extends Application{
    @Override
    public void start(Stage primaryStage) throws Exception {
        Group root = new Group();
        Rectangle rect = new Rectangle(100, 50, Color.BLUE);
        root.getChildren().add(rect);
        VBox controlGroup = new VBox();
        Slider relocX = new Slider(-100, 100, 0 );
        Slider relocY = new Slider(-100, 100, 0 );
        Slider transX = new Slider(-100, 100, 0 );
        Slider transY = new Slider(-100, 100, 0 );
        rect.layoutXProperty().bind(relocX.valueProperty());
        rect.layoutYProperty().bind(relocY.valueProperty());
        rect.translateXProperty().bind(transX.valueProperty());
        rect.translateYProperty().bind(transY.valueProperty());
        controlGroup.getChildren().addAll(relocX, relocY, transX, transY);
        root.getChildren().add(controlGroup);
        controlGroup.relocate(0, 300);
        Scene scene  = new Scene(root, 300, 400, Color.ALICEBLUE);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage