AnchorPane
AnchorPane
a 是一种允许将内容放置在距离其两侧特定距离的布局。
有 4 种设置方法和 4 种获取距离的方法。这些方法的第一个参数是孩子 Node
。setter 的第二个参数是要使用的 Double
值。该值可以是 null
,表示给定方没有约束。
二传法 | getter 方法 |
---|---|
setBottomAnchor |
getBottomAnchor |
setLeftAnchor |
getLeftAnchor |
setRightAnchor |
getRightAnchor |
setTopAnchor |
getTopAnchor |
在以下示例中,将节点放置在距边的指定距离处。
center
区域也调整大小以保持与侧面的指定距离。调整窗口大小时的行为。
public static void setBackgroundColor(Region region, Color color) {
// change to 50% opacity
color = color.deriveColor(0, 1, 1, 0.5);
region.setBackground(new Background(new BackgroundFill(color, CornerRadii.EMPTY, Insets.EMPTY)));
}
@Override
public void start(Stage primaryStage) {
Region right = new Region();
Region top = new Region();
Region left = new Region();
Region bottom = new Region();
Region center = new Region();
right.setPrefSize(50, 150);
top.setPrefSize(150, 50);
left.setPrefSize(50, 150);
bottom.setPrefSize(150, 50);
// fill with different half-transparent colors
setBackgroundColor(right, Color.RED);
setBackgroundColor(left, Color.LIME);
setBackgroundColor(top, Color.BLUE);
setBackgroundColor(bottom, Color.YELLOW);
setBackgroundColor(center, Color.BLACK);
// set distances to sides
AnchorPane.setBottomAnchor(bottom, 50d);
AnchorPane.setTopAnchor(top, 50d);
AnchorPane.setLeftAnchor(left, 50d);
AnchorPane.setRightAnchor(right, 50d);
AnchorPane.setBottomAnchor(center, 50d);
AnchorPane.setTopAnchor(center, 50d);
AnchorPane.setLeftAnchor(center, 50d);
AnchorPane.setRightAnchor(center, 50d);
// create AnchorPane with specified children
AnchorPane anchorPane = new AnchorPane(left, top, right, bottom, center);
Scene scene = new Scene(anchorPane, 200, 200);
primaryStage.setScene(scene);
primaryStage.show();
}