Given:
package pkg;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.Border;
import javafx.scene.layout.BorderStroke;
import javafx.scene.layout.BorderStrokeStyle;
import javafx.scene.layout.BorderWidths;
import javafx.scene.layout.CornerRadii;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
public class App extends Application {
@Override
public void start(Stage stage) {
var scene = new Scene(getView(), 640, 480);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch();
}
private Pane getView() {
Pane pane = new Pane();
Rectangle r = new Rectangle(0, 0, 300, 200);
r.setFill(Color.RED);
r.setStroke(Color.YELLOW);
r.setStrokeWidth(10);
pane.getChildren().add(r);
pane.setBorder(new Border(new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, CornerRadii.EMPTY,
new BorderWidths(2))));
AnchorPane ap = new AnchorPane();
ap.getChildren().add(pane);
return ap;
}
}
Why is the rectangle stomping the border of its container? It appears the pane is sized to the size of the rectangle plus the stroke width.

