2011-12-12 3 views
0

나는 유일한 GUI로 마법사을 사용하는 응용 프로그램에서 작업하고 있으며 올바른 방향에 있는지 확신 할 수 없습니다.마법사 만 작성하기 JFace 응용 프로그램

Display.getDefault(); // Creates a Dialog (program crashes with a NullPointerException if this is skipped) 
Wizard wizard = new SnapWizard(); 
WizardDialog dialog = new WizardDialog(null, wizard); // No Shell needed? 
dialog.create(); 
dialog.open(); 

이 모든 것을 실행 얻을 것 같다, 그러나 그 일의 "오른쪽"방법 :

기본적으로이 같은 GUI를 시작? SWT 이 필요하지 않습니까?

이전에 SWT를 사용했을 때 렌더링을 위해 루프를 사용하는 것을 막연히 기억하고 있습니다.이 문제는 Jface가 자동으로 처리합니까?

답변

2

제공되지 않을 경우 Shell이 생성됩니다. 이벤트 루프는 dialog.open();에서 실행됩니다.

JFace Wizard snippet을 확인할 수 있습니다.

+3

경고는 Javadoc의'Shell'에 대한 것이지만 그는 WizardDialog를 생성하고 있습니다. 상위 계층 구조로 올라가면'TrayDialog'에서 부모 쉘로'null'이 명시 적으로 허용됩니다 :'부모 쉘, 또는 최상위 쉘을 생성하기위한 null'. – p12t

+0

내가하는 방식에는 아무런 문제가 없습니다. –

+0

@ p12t 당신 말이 맞아요, 나는 부모 디스플레이 (껍질이 아닌)로 널을 넘기는 것에 관한 메모를 잘못 읽었습니다. –