我有一个带有13个标签的tabpane,这13个标签中的每一个都有13个表格视图以及每个标签中的按钮和标签等组件
我想通过从特定选项卡中选择tableview来获取tableview对象。 就像焦点来到表视图一样,我可以知道它来自哪个选项卡,以便我可以在方法中使用特定的tableview对象。
由于我有一个方法可以执行相同的任务,只是tableview根据选项卡而变化,如果我可以得到tableviews,我不需要编码13个方法。但问题是tabpane dosent上的标签只有tableview它也有标签按钮。如何获取extact我不知道如何进一步移动因为我真正想要的是我有一个方法将执行一个任务,只是tableview根据选项卡更改,所以如果我可以得到tableview obj每个标签我不需要编码13种方法。但问题是tabpane dosent上的标签只有tableview它也有标签按钮。如何获取extact节点。
选项卡和选项卡窗格背后的逻辑是一个fxml组件。我正在使用fxml组件来开发我的应用程序。
例如: -
Set<Report> selection = new HashSet<Report>(businessEventReport.getSelectionModel().getSelectedItems());
这里businessEventreport是表格中的表格视图,我希望通过关注选项卡的特定表格视图来获取特定的表格视图。
我该怎么做。
我可以使用
获取标签 SingleSelectionModel<Tab> selectionModel = tabpane.getSelectionModel();
selectionModel.getSelectedItem().getContent();
但在此之后我被困住了。
答案 0 :(得分:1)
一种解决方案是为每个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的类类型和状态来形成选择器。类似于以下内容(未经测试)。
selectedContent.lookup(".tab-pane > .tab:selected > .table-view")