在上面的应用程序中,我有一个tabpane(带有“age”,“gender”和“zipcode”的tabpane),其中每个标签包含一个VBox。 VBox分为两部分:
VBox的上半部分允许您查看列表列表,VBox的下半部分包含一个菜单,允许您更改列表列表。
VBox下部的按钮更新上述列表列表。我希望在更改基础列表时重新更新VBox中的上层节点。
相关的代码段可能是
Node createHierarchySplitMenu(HierarchiesFromFile hierarchies, String hierarchyName){
VBox vBox = new VBox();
vBox.getChildren().add(createHierarchyScrollPane(hierarchies, hierarchyName));
vBox.getChildren().add(createHierarchyMenu());
return vBox;
}
当VBox下部的节点中的按钮(由createHierarchyMenu()创建)时,我希望再次调用createHierarchyScrollPane()以显示新的列表列表。我怎么做?
是否存在从一个节点更新一个节点的常规模式/方式(当它们处于同一级别时。)
你有什么尝试?没有什么值得一提的 - 我被困住了。
如果您需要更多信息,请询问。不想用代码让你陷入困境。
答案 0 :(得分:1)
根据我的理解,解决方案可以是下一步:
创建处理createHierarchyScrollPane()的类:
private class HierarchyScrollPane extends ScrollPane {
public void update(HierarchiesFromFile hierarchies, String hierarchyName) {
// code from createHierarchyScrollPane() which works with "this" instead of new Scroll Pane
}
}
将实例传递给createHierarchyMenu():
Node createHierarchySplitMenu(HierarchiesFromFile hierarchies, String hierarchyName){
VBox vBox = new VBox();
ScrollPaneUpdate hsp = new HierarchyScrollPane();
hsp.update(hierarchies, hierarchyName);
vBox.getChildren().add(hsp);
vBox.getChildren().add(createHierarchyMenu(hsp));
return vBox;
}
createHierarchyMenu()中的某处:
public void createHierarchyMenu(final HierarchyScrollPane hsp) {
// ...
Button btnSetMin = new Button("Set Min");
btnSetMinsetOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent t) {
// your code for data update
hsp.update(hierarchies, hierarchyName);
}
});
}