JavaFX中的 定位窗格 与边框窗格类似,因为它允许您定位相对于窗格边缘之一的节点。但是,这里有几个关键区别:
-
在边框窗格中,布局区域分为五个不同的区域:顶部,右侧,底部,左侧和中间。锚定窗格不会将布局划分为不同的区域。相反,可以将布局中的每个节点绑定到布局区域的四个边中的一个或多个边,或将 锚定 。当一个节点被锚定到边缘时,在允许其他节点之后,锚定窗格将定位节点尽可能靠近该边缘。
<! --1 - > -
节点可以锚定到多个边。例如,可以将节点锚定到顶部和右侧边缘,这会将节点放置在布局的右上角。
-
如果一个节点被锚定到相反的边缘(上下或左右),则该节点将被拉向布局的两个边缘。这导致随着布局的大小增加节点被拉伸。
-
多个节点可以锚定到每个边。在这种情况下,节点将像在堆叠窗格中一样重叠。
下表显示了用于创建锚点窗格的AnchorPane类的构造函数和方法。
构造函数 | 描述 |
---|---|
AnchorPane() | 创建一个空的锚点窗格。 |
AnchorPane(Node … children) | 用指定的子节点创建一个锚定窗格。 |
方法 | 描述 |
ObservableList
getChildren() |
返回已添加
到锚定窗格的所有子节点的集合。该集合作为ObservableList类型返回,其中包括方法 add和addAll, ,您可以将一个或多个节点添加到列表中。 |
static void setTopAnchor(节点节点,Double
值) |
将指定节点锚定到顶部边缘。 值
表示从边缘的偏移量。 |
static void setRightAnchor(节点节点,Double
值) |
将指定的节点锚定到右边。 值
表示从边缘的偏移量。 |
static void setBottomAnchor(节点节点,
双精度值) |
将指定节点锚定到底边。 值
表示从边缘的偏移量。 |
static void setLeftAnchor(节点节点,Double
值) |
将指定的节点锚定到左边缘。 值
表示从边缘的偏移量。 |
void setMinHeight(double value) | 设置锚定窗格的最小高度。 void setMaxHeight(double value) |
设置锚定窗格的最大高度。 | void setPrefHeight(double value) |
设置锚定窗格的首选高度。 | void setMinWidth(double value) |
设置锚定窗格的最小宽度。 void setMaxWidth(double value) | 设置锚定窗格的最大宽度。 |
void setPrefWidth(double value) | 设置锚定窗格的首选宽度。 |
void setPadding(Insets value) | 设置堆栈 |
窗格内部边缘的填充。 |
要创建锚定窗格,请调用AnchorPane构造函数并传递要添加的节点。例如: |
<!然后使用setTopAnchor,setRightAnchor,setBottomAnchor和setLeftAnchor方法将节点锚定到锚定窗格的边缘。这些方法中的每一个都接受两个参数:要定位的节点和一个偏移量值,可让您将节点与边缘保持一定的距离。
例如,要将矩形r1固定到顶部和左侧边缘,将矩形r2固定到顶部和右侧边缘,请使用以下几行:
以下显示了在场景中显示时如何显示此锚点窗格。两个矩形显示在锚定窗格中。
图1顶部的窗口显示了最初显示时窗格的显示方式。在这里,您可以看到浅灰色的矩形如何锚定到布局的左上角,而深灰色的矩形锚定在右上角。
锚定窗格最初的大小,使其内容紧贴。结果,深灰色矩形与浅灰色矩形重叠。图底部的窗口显示了当用户拉伸窗口时布局的显示方式,允许锚点布局窗格增长。随着锚点窗格变宽,浅灰色矩形将保留在布局的左上角,而深灰色矩形则在窗格的右上角。因此,矩形分开。