首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当将JavaFX文件添加到SplitPane中时,SplitPane适合父级

当将JavaFX文件添加到SplitPane中时,SplitPane适合父级
EN

Stack Overflow用户
提问于 2015-07-23 10:57:57
回答 2查看 3.5K关注 0票数 0

我有一个SplitPane,左边有一个TreeView,右边有一个内容区域。当我点击我的TreeView中的一个项目时,我想在右边显示内容。我现在要做的就是加载我在SceneBuilder中创建的FXML。我的问题是,FXML不适合SplitPane。我就是这样加载FXMl文件的

代码语言:javascript
复制
if (selectedItem.getValue() == "Sample") {
    try {
        AnchorPane pane = (AnchorPane) FXMLLoader.load(getClass().getResource("Sample.fxml"));
        splitPane.getItems().set(1, pane);
    } catch (IOException e) {
        e.printStackTrace();
    }           
}

如何使我创建的这个AnchorPane符合最初的SplitPane大小?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-23 11:07:45

在FX中对齐是一种痛苦的i.t.a。

我建议如下:

代码语言:javascript
复制
<SplitPane>
    <TreeView /> //LEFT
    <ANCHORPANE AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> //RIGHT, anchors make the content stick to the corner
        <AnchorPane fx:id="myDynamicContent"/>
    </ANCHORPANE>
</SplitPane>

这样,内部窗格myDynamicContent应该被拉伸到所有的角落。请告诉我这是否是答案。

您还可以尝试在内容上设置AncorPane.*属性,这样就不需要嵌套的AnchorPane。

编辑:经过考虑,我认为您需要外部窗格,因为它是“容器”,没有它,内部窗格不能坚持什么。

票数 0
EN

Stack Overflow用户

发布于 2016-07-22 14:26:03

我也一直在努力解决这个问题,我最终通过避免AnchorPanes的嵌套包装来解决问题。我删除了AnchorPane作为SplitPane的子容器,因为包含的FXML的根目录也以AncherPane开头:

现在,我的主要FXML有如下所示:

代码语言:javascript
复制
<SplitPane>
    <items>
        <fx:include fx:id="navigationPanel" source="FX2NaviPanel.fxml"/>
        <fx:include fx:id="dataPanel" source="FX2dataPanel.fxml"/>
    </items> 
</SplitPane>

每个子FX2NaviPanel.fxml和FX2dataPanel.fxml仍然以AnchorPane开头:

代码语言:javascript
复制
<AnchorPane ...>
   <children>
      <GridPane></GridPane>
   </children>
</AnchorPane>

与此和适当的最大尺寸,并适合父母和零锚的相关情况下,面板很好地坚持运动的拆分和调整主窗口。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31585371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档