一旦在另一个控制器中添加了新数据,如何更新控制器?

时间:2017-04-24 14:45:36

标签: java javafx

我有一个HierarchyTabController,在初次加载应用程序时我会调用此方法一次。

  @FXML
  private void addRequirementGroup()
  {
  }

问题是,我有另一个名为RequirementGroupsController的控制器,它有一个方法,用户可以通过点击按钮添加。

C.GoBytes

因此,换句话说,如果用户添加了需求组,然后切换到“层次结构”选项卡,则它已过期。当用户调用addRequirementGroup时,如何调用displayRootTreeStructure方法?

1 个答案:

答案 0 :(得分:0)

假设这两个方法在不同的类中(你没有指定):

将displayRootTreeStructure类的引用传递给addRequirementGroup类。

DisplayRootTreeStructureClass ref = YOUR_REFERENCE_TO_THE_OBJECT;
@FXML
  private void addRequirementGroup()
  {
     ref.displayRootTreeStructure();
  }

或者,您可以将displayRootTreeStructure设置为静态并直接从类中访问它。但是,正如James_D所说,请注意采取这条路线时可能出现的并发症。

public class DisplayRootTreeStructureClass{

  public static void displayRootTreeStructure(){
     //do stuff
  }
}

你可以通过直接从类名调用来访问它,不需要任何对象:

@FXML
  private void addRequirementGroup()
  {
     DisplayRootTreeStructureClass.displayRootTreeStructure();
  }

您应该尝试提供更多有关您问题的详细信息。这使得完全回答您的问题变得更加容易。在写这篇文章时,我甚至不知道这是否是正确的答案,因为你没有提供足够的细节。