java需要一个子对象来更改父对象中的数据

时间:2017-01-10 00:25:27

标签: java swing

我确定我错过了一些明显的东西,但我对java很新。

无论如何,我需要子对象来更新父对象中的变量才能显示进度信息。

package XXX
{

    class aaa
    {
        //has Main()    
        //instantiates an instance of bbb and runs it.    
        bbb myForm = new bbb();
        myForm.setVisible(true);
    }


    class bbb
    {
        public JTextField jProgressField = new JTextField();
        //builds a form with buttons that also shows jProgressField.
        //when you push the "go" button, it instantiates CCC object and tells it to do stuff
        ccc doStuff = new ccc();
        doStuff.goAndConquer();
    }

    class ccc
    {
        protected goAndConquery()
        { 
        //blah blah blah
        //processes a file
        //needs to update ccc with progress information that will still be there to be read when ccc.goAndConquer ends and goes out of scope
        }
    }
}

所有包装。

三个文件中的三个类。

代码工作和事情发生......但是...我需要在处理发生时使用来自ccc的数据更新表单(bbb的实例)(进度条和正在运行的日志)。 如何将数据流发送回"父母"或调用实例/对象?

本质上,在ccc中,我想这样做(重复,因为它贯穿正在处理的文件)

myParentWhoCreatedMeAndCalledMe.jProgressField = myParentWhoCreatedMeAndCalledMe.jProgressField + "next line of status information"; 

1 个答案:

答案 0 :(得分:0)

如何将数据流发送回“父”或调用实例/对象?
“父母”在这里不是正确的词,因为ccc不会扩展bbb。

假设您的班级bbb有一个您想要更新的字段数据: -

class bbb{
 private String data;

 public String getData(){
  return data;
 }

public void setData(String data){
this.data=data;
}
}

在你的班级bbb中,有一个ccc实例调用方法,需要更新bbb的数据字段: -

ccc doStuff = new ccc(this);
doStuff.goAndConquer()

您的课程ccc如下所示: -

class ccc{

private bbb b;

public ccc(bbb b){
  this.b=b;
}

//Now while processing your file just do below
// b.setData(dataToBeSet);

}

只需将bbb的实例传递给ccc并更新它。