2012-10-17 54 views
2

不知道有人能幫助我解決這個問題。我正嘗試在Eclipse RAP應用程序中打開嵌入式瀏覽器。我見過的所有例子都是這樣的:org.eclipse.swt.browser.Browser在Eclipse RAP應用程序中未打開

link.addSelectionListener(new SelectionAdapter() { 
    @Override 
    public void widgetSelected(SelectionEvent event) { 
     try { 
      Browser b = new Browser(parent, SWT.NONE); 
      b.setText("<html><body>This is Unicode HTML content from memory</body></html>"); 
     } catch (SWTError e) { 
      // Error handling here 
     } 

    } 
}); 

雖然這並沒有做任何事情(視覺上)。當我用ExternalBrowser替換瀏覽器像這樣:

link.addSelectionListener(new SelectionAdapter() { 
    @Override 
    public void widgetSelected(SelectionEvent event) { 
     try { 
      int browserStyle = ExternalBrowser.LOCATION_BAR; 
      ExternalBrowser.open("myPage", "http://www.stackoverflow.com", browserStyle); 
     } catch (SWTError e) { 
       // Error handling here 
     } 

    } 
}); 

它的工作原理。雖然不完全符合要求。

我在OS X 10.8.2上使用Eclipse RCP 1.4.2。

任何有識之士高度讚賞。

+0

有關答案:http://stackoverflow.com/questions/16483900/display-a-swt-browser-programmatically-from-plugin/16484650#16484650 – Vince

回答

1

當您創建新窗口小部件時,必須觸發重新佈局才能看到它。根據您的佈局,撥打parent.layout()可能就足夠了。如果父母也包含在佈局中並縮小到其首選大小,則必須在其父母上撥打layout()。如果不確定,請佈置頂層shell。

相關問題