다음과 같은 시나리오를 생각해보십시오.수집 데이터를 효율적으로
CaravanData에는 몇 개의 JTextField가 있습니다. 그 목적은 사용자가 질문을 한 후 사용자가 완료하면 메인으로 다시 전송하는 것입니다. (또는 CaravanData에서 다시 대문이 예에서) 이상적으로
나는 다음과 같은 작업을 수행 할 싶은 호출 부모 JFrame의에 아이 JFrame의 데이터를 전송하는 가장 효율적인 방법은 무엇입니까 :
내 질문
:class Main
{
public Main
{
CustomVariable data = new CaravanData();
}
}
그러나 생성자에는 반환 유형이 없습니다. 그러나 변수 "data"가 CaravanData 클래스가 해당 비즈니스를 마칠 때까지 값이 할당되지 않기 때문에 이것이 최선의 방법 일 것입니다.
대안으로 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;
}
}
나는이 방법이 효과적이라고 생각하지 않습니다. 더 나은 기술이 있습니까? 나는 많은 질문이 있기 때문에 몇 개의 JFrames를 가지고있다. 나는 그물에 답을 찾기 위해 이것을 어떻게 말할 지 확신하지 못했습니다. 나는 쓰레드를 사용한다고 생각 했는가? 다른 프로세스가 완료 될 때까지 하나의 프로세스를 중지합니다. 하지만 나는 EDT에서 많은 시간을 소비 할 때 쓰레드만을 사용한다는 인상 아래에 있었습니까?