考虑以下场景:
我有一个 JFrame“ Main ”,它有一个 jButton“ caravanDataButton ”,它打开另一个 JFrame“ CaravanData ”。
CaravanData有几个 JTextField。其目的是询问用户问题,并在用户完成后将答案传回Main。
我的问题:将数据从子 JFrame 传输到调用父 JFrame 的最有效方法是什么(或者从这个示例从 CaravanData 返回到 Main)
理想情况下,我想做以下事情:
class Main
{
public Main
{
CustomVariable data = new CaravanData();
}
}
但是,构造函数没有返回类型。但这将是最好的方法,因为在CaravanData类完成其业务之前,不会为变量“data”赋值。
我的替代解决方案是使用 getter 和 setter。但是我必须等到用户填写完表格后才能检索数据。我使用了一个while循环:
class Main
{
public Main
{
CaravanData caravanData = new CaravanData();
while (caravanData.isUserFinished == false)
{//...Do nothing}
// Once the user has finished - collect the data:
CustomVariable data = caravanData.getRelevantData();
}
}
class CaravanData
{
...
public boolean isUserFinished()
{return ifUserHasCompletedForm;}
public CustomerVariable getRelevantData()
{
...
return data;
}
}
我认为这种方法根本没有效率。有没有更好的技术?我有一些 JFrame,因为有很多问题要问。我不知道如何用这个词在网上找到答案。我确实想过使用线程?停止一个进程,直到另一个进程完成。但是我的印象是,您只在任务从 EDT 消耗大量时间时才使用线程?