我在 FXML 文件中创建了一系列嵌套的拆分窗格。我有按钮将孩子的最大尺寸设置为零,有效地隐藏了它们。
这会将拆分窗格分隔线留在那里,并在重新调整大小时导致问题,因为拆分窗格嵌套并且分隔线正在碰撞。
可行的方法是从拆分窗格中删除子节点,使其只剩下一个节点,并且不绘制额外的分隔线。
问题是我无法访问 SplitPanes 的 getChildren(),因为它们是受保护的。fxml 中定义的拆分窗格
<SplitPane fx:id="splitPane1" dividerPositions="0.75" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" GridPane.columnIndex="1" GridPane.columnSpan="3" GridPane.rowIndex="2" GridPane.rowSpan="4" >
<items>
<SplitPane fx:id="splitPane2" orientation="VERTICAL" dividerPositions="0.4,0.8,1" >
<SplitPane fx:id="splitPane3" orientation="HORIZONTAL" dividerPositions="0.5" >
<items>
<Viewport fx:id="viewB" minWidth="0" minHeight="0" />
<TilePane fx:id="view3D" prefHeight="200.0" prefWidth="200.0" style="-fx-background-color: black;" />
</items>
</SplitPane>
<Viewport fx:id="viewC" minWidth="0" minHeight="0" />
<Viewport fx:id="viewA" minWidth="0" minHeight="0" />
</SplitPane>
我想使用的控制器代码:
splitPane2.getChildren().remove(viewA);
有任何想法吗?