我确定我错过了一些明显的东西,但我对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";
答案 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并更新它。