如何在 JavaFX 的选项卡内访问我的 HBox?
How to access my HBox inside a tab in JavaFX?
我有一个包含许多选项卡的 tabPane,每个选项卡都有一个 HBox,HBox 中有许多 VBox。
选项卡及其 HBox 在开始时通过循环遍历数据库并为每一行创建它们来加载,完成后我想通过程序顶部菜单中的按钮将更多 VBox 添加到 HBox 中.该程序提示用户输入一个选项卡,然后我设置了 selectedTab (this.selTab) 我正在通过此代码添加 VBox,因此我可以在插入它们时访问它:
tabPane.getSelectionModel().select(defaultNum);
selTab = tabPane.getSelectionModel().getSelectedItem();
我也有一个 HBox,我将其保存在上下文中。当我告诉系统我想将 VBox 添加到 HBox 时,上下文 HBox 仍设置为程序启动时为数据库最后一行创建的最终 HBox。例如,如果我尝试将 VBox 放入 5 个选项卡中的第 3 个,它会做任何事情,除了它将 VBox 放入 5 个选项卡中的第 5 个(它在启动时制作的最终 tab/HBox)。我想将上下文中的 HBox 更改为在 selectedTab 中找到的 HBox,这样我就可以指示系统将 VBox 放入正确的 HBox 中,但我不知道如何访问它。我以为可能是
curHbox = selTab.getContext().getChildren();
或
curHbox = selTab.getContext().getValue();
但是我得到了以下任一错误:“方法 getChildren() 未定义类型 Node”
请参阅下面的上下文 selectedTab 屏幕截图,如何访问您可以在值中看到的 HBox?
我觉得我明显遗漏了一些东西,但我是 JavaFX 的新手,我在这里搜索的所有内容都不是我要找的。另外我觉得我刚刚说了很多盒子,所以我希望这是有道理的!
请提供 minimal reproducible example 来展示问题。这样别人就可以发现问题并更快地为您提供解决方案。
话虽如此,根据您提供的 info/image,您似乎将 HBox 设置为选项卡的内容。所以要访问你可以直接获取内容并将其转换为HBox。
类似于:
selTab = tabPane.getSelectionModel().getSelectedItem();
HBox hbox = (HBox)selTab.getContent();
hbox.getChildren().add(...);
我有一个包含许多选项卡的 tabPane,每个选项卡都有一个 HBox,HBox 中有许多 VBox。
选项卡及其 HBox 在开始时通过循环遍历数据库并为每一行创建它们来加载,完成后我想通过程序顶部菜单中的按钮将更多 VBox 添加到 HBox 中.该程序提示用户输入一个选项卡,然后我设置了 selectedTab (this.selTab) 我正在通过此代码添加 VBox,因此我可以在插入它们时访问它:
tabPane.getSelectionModel().select(defaultNum);
selTab = tabPane.getSelectionModel().getSelectedItem();
我也有一个 HBox,我将其保存在上下文中。当我告诉系统我想将 VBox 添加到 HBox 时,上下文 HBox 仍设置为程序启动时为数据库最后一行创建的最终 HBox。例如,如果我尝试将 VBox 放入 5 个选项卡中的第 3 个,它会做任何事情,除了它将 VBox 放入 5 个选项卡中的第 5 个(它在启动时制作的最终 tab/HBox)。我想将上下文中的 HBox 更改为在 selectedTab 中找到的 HBox,这样我就可以指示系统将 VBox 放入正确的 HBox 中,但我不知道如何访问它。我以为可能是
curHbox = selTab.getContext().getChildren();
或
curHbox = selTab.getContext().getValue();
但是我得到了以下任一错误:“方法 getChildren() 未定义类型 Node”
请参阅下面的上下文 selectedTab 屏幕截图,如何访问您可以在值中看到的 HBox?
我觉得我明显遗漏了一些东西,但我是 JavaFX 的新手,我在这里搜索的所有内容都不是我要找的。另外我觉得我刚刚说了很多盒子,所以我希望这是有道理的!
请提供 minimal reproducible example 来展示问题。这样别人就可以发现问题并更快地为您提供解决方案。
话虽如此,根据您提供的 info/image,您似乎将 HBox 设置为选项卡的内容。所以要访问你可以直接获取内容并将其转换为HBox。
类似于:
selTab = tabPane.getSelectionModel().getSelectedItem();
HBox hbox = (HBox)selTab.getContent();
hbox.getChildren().add(...);