如何获取选项卡内的tableview对象,而选项卡又位于选项卡窗格Javafx内

How to get the tableview object which is inside a tab which inturn is inside a Tabpane Javafx

我有一个包含 13 个选项卡的选项卡窗格,这 13 个选项卡中的每个选项卡都有 13 个 table 视图以及每个选项卡中的一些组件,例如按钮和标签

我想通过从特定选项卡中选择 table 视图来获取 table 视图对象。 就像焦点来到 table 视图一样,我可以知道它来自哪个选项卡,这样我就可以在方法中使用特定的 table 视图对象。

因为我有一个方法可以完成一项相同的任务,只是 table 视图会根据选项卡发生变化,如果我可以获得 table 视图,我就不需要编码13种方法。但问题是 tabpane dosent 上的选项卡只有 tableview 它也有标签按钮。如何获取 extact 我不确定如何进一步移动,因为我真正想要的就像我有一个方法可以完成一项任务,只是 table 视图会根据选项卡发生变化,所以如果我可以获得每个选项卡的 tableview obj 我不需要编码 13 种方法。但问题是 tabpane dosent 上的选项卡只有 tableview 它也有标签按钮。如何获取精确节点。

选项卡和选项卡窗格背后的逻辑是一个 fxml 组件。我正在使用 fxml 组件来开发我的应用程序。

例如:-

Set<Report> selection = new HashSet<Report>(businessEventReport.getSelectionModel().getSelectedItems());

这里的 businessEventreport 是 table 中的一个 table 视图,我想通过关注选项卡的特定 table 视图来获得特定的 table 视图.

我该怎么做。

我可以使用

获取标签
   SingleSelectionModel<Tab> selectionModel = tabpane.getSelectionModel();
   selectionModel.getSelectedItem().getContent();

但在那之后我就卡住了。

一种解决方案是为每个 TableView 分配一个标识符。这个 然后,标识符将用于使用查找方法从每个选项卡(或整个场景)的控件集中发现 TableView。

要为每个 TableView 设置标识符,请使用 Node.setId method

tableView.setId("MyTable")

要从 TabPane 中找到 TableView,请使用 Node.lookup method

Tab selectedTab = tabPane.getSelectionModel().getSelectedItem()
Node selectedContent = selectedTab.getContent()
TableView selectedTable = selectedContent.lookup("#MyTable")

查找方法搜索用于执行查找的节点的子节点。这使您可以灵活地为每个 TableView 分配一个唯一标识符,允许从 TabPane 本身进行查找,或者为它们分配相同的标识符并使​​用父 Tab 来发现 TableView(上面的示例)。

查找方法使用 CSS 选择器来查找控件,因此标识符不是必需的。另一种方法是使用 TabPane 和 TableView 的 class 类型和状态来形成选择器。类似于以下内容(未经测试)。

selectedContent.lookup(".tab-pane > .tab:selected > .table-view")