2012-11-27 2 views
2

SWT 라이브러리를 사용하여 Java 프로젝트에 문제가 있습니다. SWT를 처음 사용하는 것이므로 돌을 던지 지 마십시오.디스플레이 (부모)를 처리하지 않고 셸 처리

환경 : 이클립스 - 주노

클래스와 함수 :

1º 클라이언트 -> 여기서 "주"입니다. "GUI_Creator"클래스 (mine)의 객체를 생성합니다.

2º GUI_Creator -> 내 양식을 "만들기"위해 2 가지 기능이 있습니다.

2.1 -> MakeLogIn -> Void 메서드, 내가 쉘에 필요한 컨트롤을 매개 변수로 추가합니다. 나는 그것을 사용자에게 보여주는 첫 번째 형식을 desing하는 데 사용합니다.

또한이 함수는이 셸의 버튼에 대한 "클릭"이벤트를 GUI_Creator 클래스의 두 번째 함수와 연결하여 새 셸을 만듭니다. 그런 다음이 셸은 열리고 첫 번째 셸은 닫힙니다.

2.2 -> MakeClient ->이 함수는 쉘 var를 반환합니다. 나를 위해,이 등, 심지어는 종로와 함께, 내 프로그램의 두 번째 쉘을 반환

문제 :

while (!Conexion.isDisposed()) 
{ 
    if (!ourDisplay.readAndDispatch()) 
     ourDisplay.sleep(); 
} 

ourDisplay.dispose(); 
: 나는 "주"이 코드의 끝에서, 사용하고

내가 틀리지 않으면이 코드는 첫 번째 셸을 닫고 두 번째 셸만 열어두면 부모 프로그램을 삭제하기 때문에 프로그램이 완전히 닫힙니다.

그러나이 코드를 삭제할 수 없습니다. 프로그램을 실행할 때 액션을 "대기"하지 않고 모든 "기본"코드를 실행 한 다음 GUI를 닫고 프로그램이 완료됩니다.

그래서이 상황을 해결하기 위해 내가 무엇을해야할지 모릅니다.

감사합니다, BTC

+1

당신이, 포함 된 완전한 짧은, 자기, 그리고 올바른 예를 쓸 수 있습니까? http://sscce.org/ 당신이 준 예제는 자기 완결 형이 아니며 완결 형이 아니기 때문에 무엇이 잘못되었는지 파악하기가 어렵습니다. – durron597

답변

1

나는 문제의 권리를 가지고있는 경우 잘 모르겠어요,하지만 당신은 시도 할 수 :

while (!(shell1.isDisposed() && shell2.isDisposed())) { 
... 
} 
+0

해결되었습니다! 감사!! 나는 "메인"에서 두 번째 셸의 셸 변수가 없기 때문에 약간의 문제가 있지만 중요하지는 않습니다. –

관련 문제