📜  JavaFX | AnchorPane 类(1)

📅  最后修改于: 2023-12-03 15:01:36.042000             🧑  作者: Mango

JavaFX | AnchorPane 类

简介

AnchorPane 类是 JavaFX 中的一个布局容器,它允许我们通过设置子节点的不同锚点(上、下、左、右、中),实现相对布局,同时自动随着父容器的变化而变化。

使用

在 JavaFX 应用程序中,我们可以通过以下步骤使用 AnchorPane:

  1. 导入 AnchorPane 类:import javafx.scene.layout.AnchorPane;
  2. 创建 AnchorPane 实例:AnchorPane anchorPane = new AnchorPane();
  3. 将 AnchorPane 添加到场景图中:root.getChildren().add(anchorPane);
  4. 向 AnchorPane 中添加子节点:anchorPane.getChildren().add(node);
  5. 设置子节点的锚点,以实现相对布局:AnchorPane.setTopAnchor(node, 10.0);
锚点属性

AnchorPane 类提供了下列锚点属性,用于设置子节点相对于 AnchorPane 的位置:

  • topAnchor:子节点与 AnchorPane 顶部的距离。
  • bottomAnchor:子节点与 AnchorPane 底部的距离。
  • leftAnchor:子节点与 AnchorPane 左侧的距离。
  • rightAnchor:子节点与 AnchorPane 右侧的距离。
  • centerXAnchor:子节点在 AnchorPane 中心点的横坐标位置。
  • centerYAnchor:子节点在 AnchorPane 中心点的纵坐标位置。
示例代码

以下示例演示了如何使用 AnchorPane 实现两个 Label 的相对布局:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;

public class AnchorPaneDemo extends Application {
    @Override
    public void start(Stage primaryStage) {
        AnchorPane anchorPane = new AnchorPane();

        Label label1 = new Label("Label 1");
        AnchorPane.setTopAnchor(label1, 10.0);
        AnchorPane.setLeftAnchor(label1, 10.0);

        Label label2 = new Label("Label 2");
        AnchorPane.setBottomAnchor(label2, 10.0);
        AnchorPane.setRightAnchor(label2, 10.0);

        anchorPane.getChildren().addAll(label1, label2);

        Scene scene = new Scene(anchorPane, 300, 200);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
总结

通过本文,我们了解了 AnchorPane 类的基本用法和属性,它可以方便地帮助我们实现相对布局。使用时需要注意子节点的锚点设置,以及相应的场景图大小调整。