这可能听起来像是重复的,因为有很多关于调整儿童窗格以适应父窗格的问题,但我几乎没有运气就尝试了所有内容。
我的SplitPane位于AnchorPane内,这是我的原始代码:
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity"
minWidth="-Infinity" prefHeight="792.0" prefWidth="1055.0"
xmlns="http://javafx.com/javafx/null" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="com.judeochalifu.stock_manager.controller.NewSupplierController">
<children>
<SplitPane fx:id="splitPlane" dividerPositions="0.5" layoutX="371.0" layoutY="229.0" prefHeight="792.0" prefWidth="1055.0"orientation="VERTICAL" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<items>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="100.0" prefWidth="160.0" />
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="100.0" prefWidth="160.0" />
</items>
</SplitPane>
</children>
</AnchorPane>
这是没有调整大小的输出:
当我拖动窗口以增加宽度或高度时,这就是我得到的:
所需的结果是SplitPane在窗口展开时消耗,即根据Anchorpane的宽度和高度调整大小。
环顾四周,我发现OP正在尝试类似的两个问题:
JavaFX: FXML: How to make the child to extend its size to fit the parent pane?
JavaFX Panel inside Panel autoresizing
答案建议仅使用属性:
AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"
在子窗格中。我试过这个没有运气:这就是我的代码现在的样子:
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity"
minWidth="-Infinity" prefHeight="792.0" prefWidth="1055.0"
xmlns="http://javafx.com/javafx/null" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="com.judeochalifu.stock_manager.controller.NewSupplierController">
<children>
<SplitPane fx:id="splitPlane" dividerPositions="0.5" "orientation="VERTICAL"
AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0"
AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<items>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="100.0"
prefWidth="160.0" />
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="100.0"
prefWidth="160.0" />
</items>
</SplitPane>
</children>
</AnchorPane>
我错过了什么?
答案 0 :(得分:0)
我无法编译您的代码,因为它中存在错误。第一个示例中的prefWidth
和orientation
参数之间缺少空格,第二个示例中的orientation
参数前面有不必要的引号。修好后,一切都按预期工作。
这里是固定代码:
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity"
minWidth="-Infinity" prefHeight="792.0" prefWidth="1055.0"
xmlns="http://javafx.com/javafx/null" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="com.judeochalifu.stock_manager.controller.NewSupplierController">
<children>
<SplitPane fx:id="splitPlane" dividerPositions="0.5" orientation="VERTICAL"
AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0"
AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<items>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="100.0" prefWidth="160.0"/>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="100.0" prefWidth="160.0"/>
</items>
</SplitPane>
</children>
</AnchorPane>
请注意,您可以指定SplitPane的prefWidth
,prefHeight
,layoutX
和layoutY
,但由于锚点设置为0,因此它已设置为0 AnchorPane
的唯一孩子,它将始终占用所有可用空间,因此它是多余的。
答案 1 :(得分:0)
我找到了答案!我正在寻找同样的东西,但我的设置有点不同。我使用了一个外部滚动窗格,在那个锚窗格中,在那个拆分窗格中,在那个锚窗格中,它会保持很小并阻碍拆分窗格调整大小。我为修复它所做的是选择 SCROLLpane 并将适合宽度和适合高度设置为 true。还有一些适合父母。