2009-05-12 5 views
1

나는 여기에서 새롭기 때문에 실수를 용서합니다. 나는 당신의 도움이 급히 필요합니다. 나는 이클립스 플러그인을 개발하는 데 새로운 사람이고 많은 일을 할 수있다. 이것은 내가 붙어있는 곳이다. 단추가있는보기가 있습니다. 사용자가 버튼을 클릭하면 새 창이 열립니다 (창은 텍스트 영역, 버튼 및 기타 SWT 위젯이있는 양식입니다). 창 만들기가 끝났습니다.Eclipse 플러그인 : WorkBench에서 새 창 열기

응용 프로그램을 컴파일 한 후 예상대로 Eclipse Workbench의 새 인스턴스를 가져 오지만 뷰를 열고 단추를 클릭하면 창이 표시되지 않습니다. 이것은이 클래스를 호출하는 코드가

public class NewWindow { 
    private Display display; 
    private Shell shell; 

    public NewWindow(){ 

     this.display = new Display(); 
    shell = new Shell(displaySWT.TITLE | SWT.MIN | SWT.CLOSE); 
    shell.setText("fffffffffffff"); 

       // additional code here 
       ... 
       ... 

    shell.open(); 
    this.shellSleep(); // this methode is implemented in my code 
} 

:이 창 코드입니다

... ...

this.btnCreateNewQuery.addSelectionListener(new SelectionListener(){ 
      public void widgetDefaultSelected(SelectionEvent e){ 

      } 
      public void widgetSelected(SelectionEvent e){         NewWindow b = new NewWindow(); 

     } 
    }); 

... ...

창이 왜 나타나지 않는지 이해할 수 없습니다. 누군가이 문제를 해결하도록 도와 줄 수 있습니까? 나는 그것을 해결하려고 노력하지만 밤낮으로 노력하고 있지만 아직 아무것도 찾지 못했습니다. 나는이 사이트에서 somethig를 읽었다. 그러나 나는 그들이 의미하는 것을 이해하지 못한다. 링크입니다 : How do I get the workbench window to open a modal dialog in an Eclipse based project?

도움이 필요합니다.

답변

0

새 셸을 만들고 싶지 않습니다. 대신 부모 쉘을 새 클래스에 전달하십시오. Dialog 클래스 중 하나 (또는 ​​Dialog 자체)를 새 창에 대해 쉽게 확장 할 수 있습니다. 그런 다음 생성자에서 super (Shell 부모)를 호출하여 모든 환경/GUI 항목을 초기화 한 다음 원하는 방식으로 대화 상자 영역을 배치 할 수 있습니다. 그런 다음 새 창을 열려면 dialog.open()을 수행하십시오.

+0

위의 진술을 이해할 수 없습니다. 코드 스 니펫 (snippet)을 사용하여 정교하게 설명해 주시겠습니까? –

3

Eddy, 매우 쉽게 해결할 수 있습니다. 새 디스플레이를 만들지 마십시오.

public NewWindow() { 
     this.display = PlatformUI.getWorkbench().getDisplay(); 
     shell = new Shell(display, SWT.TITLE | SWT.MIN | SWT.CLOSE); 
     shell.setText("fffffffffffff"); 

       // additional code here 
       ... 
       ... 

     shell.open(); 
     this.shellSleep(); // this methode is implemented in my code 
} 

다른 방법으로 표시 변수를 닫고 null을 Shell 생성자에 전달할 수 있습니다.