你有没有实现ShowValueDialog中的getParent()?
class DialogResult extends ... {
   DialogResult instance;
   public DialogResult(...) {
      instance = this;
   }
   public void actionPerformed(...) {
      ShowValueDialog svd = new ShowValueDialog( instance);
      // don't use this to pass in the object!!!!!!!!!!!!!
      svd.show();
   }
   ...
}
class  ShowValueDialog extends ... {
   private Object o;
   public ShowValueDialog(Object o) {
      this.o = o;
   }   public DialogResult getParent() {
      return (DialogResult)o;
   }
   ...
}

解决方案 »

  1.   

    我按楼上的改了,可有错误:method getparent() in class showvaluedialog can't override method getparent() in class java.awt.component with different return type was java.awt.container
      

  2.   

    没那么麻烦
    ShowValueDialog.addPropertyChangeListener(DialogResult);
    DialogResult实现PropertyChangeListener接口。
    有内容变化时ShowValueDialog.firePropertyChange()就好了。
      

  3.   

    如果要用你的办法的话,实例化ShowValueDialog时用ShowValueDialog(Container c)就好了。c用DialogResult
      

  4.   

    具体怎么写啊?
    我如果要用到DialogResult中的变量怎么办
      

  5.   

    写个getParent()方法
    DialogResult getDialogResultParent(){
      Container parent = this.getParent();
      while(parent!=null)
      {
        if(parent instanceof DialogResult)
          return parent;
        else
          parent = parent.getParent();
      }
    }
      

  6.   

    少个return null;
    补上:
    DialogResult getDialogResultParent(){
      Container parent = this.getParent();
      while(parent!=null)
      {
        if(parent instanceof DialogResult)
          return parent;
        else
          parent = parent.getParent();
      }
      return null;
    }
      

  7.   

    能不能不用getParent(),用getXXX()?