0

コンポジットの理解に問題があります。

フレームクラスでは、vpがロードされたときにverticalPanel(vp)があり、getActionとgetButtonがvpに表示されます

ボタンをクリックすると、getTreeが実行され、カスタマイズされたツリーがある場所で初期化されたtreeCクラスがあります。とtreeitem。

TreeCクラスでアクションオブジェクトを使用したい

どうやってするの。

Plzヘルプ。

public class Frame{
public frame () {
    initWidget(getFramePanel());
}
Private VerticalalPanel getFramePanel() { 
    if (vp== null) {
        vp= new VerticalalPanel();
        vp.setSize("1442px", "750px");
        vp.add(getAction());// **are composites**
        vp.add(getButton) // **are composite**

    }
    return vp;

private Action getAction() {
        if (action == null) {
            action = new Action(); // In action class there are 7 buttons and 2 methods //setDisplayRepository(), and setDisplayFolder()
            action.setDisplayRepository();
        }
        return action;
    }
}
private Button getButton() {
        if (btn == null) {
            btn = new Button("Click");
            btnProperties.addClickHandler(new ClickHandler() {
                public void onClick(ClickEvent event) {
                    hp.add(getTree());
                }
            });
            btn.setSize("37px", "36px");

        }
        return btnProperties;
    }

private TreeCmis getTreeC() {
        if (treeC == null) {
            treeC = new TreeC();
            treeC.setWidth("360px");
        }
        return treeCmis;
    }
}

public class TreeC extends Composite{
private Tree repo;
//constructor
public TreeC {

createTree()
}
Void createTree(){
/* here i need to to use the object action declared in frame class
For using action.setDisplayfolder*/
}
}
4

1 に答える 1

1

最も簡単な方法は次のとおりです。

public class TreeC extends Composite{
  private Tree repo;
  private Action action;
  //constructor
  public TreeC(Action action) {
   this.action = action;
   createTree()
  }
  void createTree(){
   /* here i need to to use the object action declared in frame class
   For using action.setDisplayfolder*/
  }
}

インスタンスを作成するとき treeC = new TreeC(action);

于 2012-04-20T09:43:58.887 に答える