当前位置: 首页 > 知识库问答 >
问题:

Gluon SceneBuilder 8.1.1使用Include或Import FXML时出现的问题

汲雅珺
2023-03-14

根据这个题目我还有几个问题:

  1. 您可以在其中兑换:include into的容器是否有限制?(例如,不允许使用TabPanes吗??)
  2. 在包含的FXML文件中是否有我必须做的特定事情,但我没有做这些事情?
  3. 还有其他提示吗?

如果你遇到同样的问题--也许你可以投票支持这个bug,所以我们增加了获得修复的机会。

共有1个答案

沈宏朗
2023-03-14

默认情况下,当您使用场景生成器菜单文件->包含->FXML...将一个FXML文件包含到另一个FXML文件中时,包含的文件将按照以下代码添加到根文件下:

final FXOMObject rootObject = targetDocument.getFxomRoot();
if (rootObject != null) {
    final Selection selection = getEditorController().getSelection();
    if (selection.isEmpty() || selection.isSelected(rootObject)) {
        targetObject = rootObject;
    } else {
        targetObject = selection.getAncestor();
    }        
    ...
}

对于anchorwithTabpane.fxml文件,如果您没有选择任何内容,它将包含在root下:

<AnchorPane ...>
   <children>
     <TabPane  .../>
     <fx:include source="UserControl.fxml" />
   </children>
</AnchorPane>

现在,如果您选择tabpane,通过else条件,它将再次在根下运行,假定tabpane的祖先是根本身。

如果选择tab,则祖先是tabpane,但不能包含FXML节点。

如果您选择了一个选项卡的AnchorPane,那么祖先就是该选项卡,并且您也不能在其中包含一个FXML节点。

因此,本例中的解决方案或解决办法是向锚定窗格添加一些内部容器或节点,然后选择它:由于它的祖先是anchorpane,所以它将在那里添加FXML节点。

最后,您可以删除该临时容器/节点。

因此,您将拥有:

<TabPane ...>
    <tabs>
      <Tab text="Untitled Tab 1">
        <content>
          <AnchorPane ...>
                 <children>
                    <fx:include source="UserControl.fxml" />
                 </children>
          </AnchorPane>
        </content>
      </Tab>
      <Tab text="Untitled Tab 2">
        <content>
          <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
        </content>
      </Tab>
    </tabs>

关于什么容器可以容纳fx:include的问题,javafx.scene.layout.*下的所有窗格都可以容纳它们。

 类似资料:
  • 请问这是什么原因? 官方文档里的代码复制下来也是错误的

  • 我有一个数十万对象的列表。当每一个运行时,它都会根据给定的值执行一个可能很长的计算。正因为如此,我希望异步运行每个任务(最好是通过使用某种执行器),并在30秒后检索每次计算的结果,取消那些没有及时完成的结果。(所得值在其他地方使用。) 到目前为止,我就是这样实现它的: ArrayList存储每个要执行的,然后将其发送到ExecutorService以运行所有任务。我遇到的问题是,任务似乎是同步启动

  • 问题内容: 我在应用程序中使用Gson,为此,我使用了一些名称与使用Json相同的类。我的应用程序运行良好,但是在编写proguard时,应用程序崩溃了,我猜有些类正在缩小。我的错误是: java.lang.ClassCastException:com.google.gson.internal.StringMap无法转换为com.sample.package.GsonClass 问题答案: 您需要

  • 我在使用SpecifyKind时遇到问题。我发现,如果我将字符串(“O”)应用于DateTime.Now或new DateTime(),则会使spantime不同。我不知道这是怎么可能的。我尝试将这些日期时间保存为数据库中的Utc,但由于跨度不同,时间将不正确。 我就是这样做的: 现在:2021-12-08 13:40:35现在:2021-12-08T13:40:35.1159209 01:00日

  • 我使用的是NetBeans 8.1,我有一个SpringBoot项目,它具有以下依赖项: 它们都是在依赖项中正确下载的。 该项目有3个java类和一个扩展JpaRepository的接口 在src/main/资源项下- 在html标签上,我有错误:本地名称为“xmlns: th不可序列化为XML 1.0的属性。如果我试图运行该项目并转到http://localhost:8080/页面,我有一个白标

  • 我已经实现了一个自定义的Keycloak UserStorageProvider SPI(以下是官方文档https://www.Keycloak.org/docs/latest/server_development/index.html#_user-storage-spi的第11点),它执行以下操作: 根据外部身份验证服务对用户(以前不存在于本地存储中)进行身份验证。 将(针对自定义服务成功进行身