private YOrder parentWork;
public DlgQueryOpticDetail(Dialog owner, YOrder order) {
this(owner, DialogShowConstants.HIDE_CONDITION, true);
parentWork = order;
this.startQuery();
}
@Override
protected DialogShowInterface createDialogShower() {
return new ButtonClose(parentWork);
}
第一个函数是DlgQueryOpticDetail的构造函数,给parentWork赋值为order,第二个函数返回了一个ButtonClose函数,并给ButtonClose赋值parentWork。可是DlgQueryOpticDetail构造函数比createDialogShower()方法慢执行,导致给ButtonClose赋值时parentWork还是空的。有没有什么方法能使ButtonClose赋值时parentWork???(parentWork的值是由order赋予的)问题的描述我说的有点别扭,希望有看懂的大虾帮忙解答下

解决方案 »

  1.   

    DlgQueryOpticDetail dod = new DlgQueryOpticDetail(owner,order);
    dod.createDialogShower();
      

  2.   

    2楼你说的可以,不过我这个情况有些特殊,createDialogShower这个方法是个重写方法,它返回的new ButtonClose(parentWork)类控制着本类的DlgQueryOpticDetail的关闭方法。
    dod.createDialogShower()按你的方法这是产生一个新的类了,无法控制DlgQueryOpticDetail的关闭,
    其实我是在重写DlgQueryOpticDetail的关闭方法
      

  3.   

    DlgQueryOpticDetail构造函数比createDialogShower()方法慢执行搞不懂这句话的意思。
    你让它比它快执行不就行了?