You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SceneBuilder中使AnchorPane内的面板/矩形居中且保持原有尺寸

在SceneBuilder中让面板/矩形始终居中且保持固定尺寸的方法

方法一:用StackPane(最简单推荐)

StackPane本身默认就会把所有子节点居中显示,而且不会强制修改子节点的尺寸,完美匹配你的需求:

  • 打开SceneBuilder,把当前的根容器(比如AnchorPane)换成StackPane,或者在现有容器里嵌套一个StackPane。
  • 把你要居中的正方形面板(或矩形)拖进StackPane。
  • 选中面板,在右侧Properties面板里设置:
    • Pref Width和Pref Height设为相同值(比如200,就是你要的正方形大小)
    • Max Width和Max Height也设成和Pref一样的数值
    • Min Width和Min Height同样设为这个数值
      这样不管窗口怎么缩放,面板都会一直保持正方形且居中。

方法二:继续用AnchorPane(如果不想换容器)

之前用AnchorPane出问题是因为你设置了锚点约束(比如同时绑定左右/上下),导致面板被拉伸。按下面步骤改:

  • 选中AnchorPane里的面板,在右侧Layout面板里,把Top Anchor、Bottom Anchor、Left Anchor、Right Anchor全部设为USE_COMPUTED_SIZE(取消所有锚点绑定)。
  • 同样设置面板的Pref/Max/Min Width和Pref/Max/Min Height为相同的固定值,确保尺寸不变。
  • 在Layout面板里找到Alignment,选择CENTER,这样面板就会在AnchorPane里居中,且不会被拉伸。

FXML代码示例(StackPane版本)

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.layout.StackPane?>
<?import javafx.scene.layout.Pane?>

<StackPane xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1">
    <!-- 黑色正方形面板,固定尺寸200x200,自动居中 -->
    <Pane style="-fx-background-color: black;" 
          prefWidth="200" prefHeight="200"
          maxWidth="200" maxHeight="200"
          minWidth="200" minHeight="200"/>
</StackPane>

内容的提问来源于stack exchange,提问作者markusnether

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 22:57:22