私はHierarchyTabControllerを持っていますが、これはアプリケーションの初期ロード時に一度このメソッドを呼び出します。新しいデータが他のコントローラに追加されたら、コントローラを更新するにはどうすればいいですか?
public void displayRootTreeStructure()
{
//for loops through each Requirement to display all RequirementGroups
}
問題は、ユーザーがボタンをクリックして追加できるメソッドを持つRequirementGroupsControllerという別のコントローラがあります。
@FXML
private void addRequirementGroup()
{
}
ユーザーが要件グループを追加し、階層]タブに切り替えあれば、他の言葉で、それが古くなっています。ユーザーがaddRequirementGroupを呼び出すときにdisplayRootTreeStructureメソッドを呼び出すにはどうすればよいですか? 2つの方法が別々のクラスであると仮定
モデルクラスが必要で、そのクラスのインスタンスを各コントローラと共有する必要があるようです。コントローラはモデルを観察し、データが変更されたときに必要に応じてUIを更新することができます。 (これはMVCのようなデザインパターンの本質です。)パターンの例はhttp://stackoverflow.com/questions/32342864/applying-mvc-with-javafxをご覧ください。 –
問題は、1つのコントローラだけがデータを変更していることです。他のコントローラはデータを表示しているだけです。 – Jay266
正確に。 2つのコントローラ間でモデルインスタンスを共有します。データを表示するコントローラは、モデル内のデータを観察し、必要に応じてUIを更新することができます。データを変更するコントローラーはこれらのデータを変更し、他のコントローラーはそれを自動的に更新します。ツリーのモデルは、私がリンクしている例の単純なモデルよりも複雑かもしれませんが、構造的アイデアは同じです。 –