考虑以下场景:
我有一个 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 消耗大量时间时才使用线程?