0

ここに画像の説明を入力してください

上記のアプリケーションには、各タブにVBoxが含まれているタブペイン(「年齢」、「性別」、「郵便番号」のあるタブペイン)があります。VBoxは2つに分割されています。

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()を再度呼び出して、新しいリストのリストを表示します。それ、どうやったら出来るの?

あるノードを別のノードから更新する通常のパターン/方法はありますか(同じレベルにある場合)?

何を試しましたか?言及する価値はありません-私は立ち往生しています。

さらに詳しい情報が必要な場合は、お問い合わせください。コードであなたを困惑させたくありませんでした。

4

1 に答える 1

1

私が理解していることから、解決策は次のようになります。

  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
        }
    }
    
  2. インスタンスを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;
    }
    
  3. 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);
            }
         }); 
    }
    
于 2012-08-29T12:10:14.137 に答える