I scaled a node in the panel. But the panel layout takes into account borders without any transformation. I want it to take into account the transformed boundaries.
For instance:

And the code:
import javafx.application.Application; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.scene.shape.Circle; import javafx.scene.transform.Scale; import javafx.scene.transform.Translate; import javafx.stage.Stage; public class HBoxApp extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage stage) throws Exception { double scale = 0.75; HBox box1 = createBox(); box1.getChildren().add(new Circle(20)); box1.getChildren().add(new Label("Test without any scale")); HBox box2 = createBox(); Circle c2 = new Circle(20); c2.setScaleX(scale); c2.setScaleY(scale); box2.getChildren().add(c2); box2.getChildren().add(new Label("Test with the setScaleX/Y methods")); HBox box3 = createBox(); Circle c3 = new Circle(20); c3.getTransforms().add(new Scale(scale, scale)); box3.getChildren().add(c3); box3.getChildren().add(new Label("Test with the Scale transform")); HBox box4 = createBox(); Circle c4 = new Circle(20); c4.getTransforms().addAll(new Scale(scale, scale), new Translate(-20*(1-scale), 0)); box4.getChildren().add(c4); box4.getChildren().add(new Label("Test with the Scale and Translate transform")); HBox box5 = createBox(); box5.getChildren().add(new Circle(20 * scale)); box5.getChildren().add(new Label("My Goal")); VBox vBox = new VBox(10); vBox.getChildren().addAll(box1, box2, box4, box5); stage.setScene(new Scene(vBox, 300, 200)); stage.show(); } private HBox createBox() { HBox box = new HBox(5); box.setAlignment(Pos.CENTER_LEFT); return box; } }
The solution may be to use translations in a circle and on a label, but this method seems too complicated to do such a simple thing, and using Pane ( HBox ) seems more painful than using a basic Group with a hard-coded layout.
source share