1

我正在尝试通过从 Eclipse 插件的代码中调用它来打开 Eclipse 的内部浏览器(org.eclipse.swt.browser.Browser)。

到目前为止,我实际上可以实例化一个,并且可以“打开”一个 URL(感谢我设置的侦听器的日志)。但什么也没有出现。由于外壳用作浏览器的复合父级,我希望它会启动。

我找不到关于这个特定问题的任何资源,大多数示例片段都不是关于插件的。

到目前为止,这是我的代码:

  final Shell shell = myActiveWorkbenchWindow.getShell();
  final Browser browser = new Browser(shell, SWT.NONE);
   // set up listener to log the url when loaded
  browser.setUrl(getLoginUrl());

那么,我怎样才能让浏览器出现(作为弹出窗口或在我的 Eclipse 窗口中)?

4

1 回答 1

3

与其将“浏览器”视为具有自己的窗口镶边的对象,不如将其视为可以包含 HTML 数据的专用面板或 UI 区域。上面示例中的问题是您将新的 UI 面板插入到现有小部件中(子小部件通过将父小部件作为构造函数的参数来创建自己)。

使用 Browser 对象在新窗口中打开 URL 的更好示例可能是:

Shell parentShell = Activator.getDefault().getWorkbench().getActiveWorkbenchWindow().getShell();
Shell myShell = new Shell (parentShell, SWT.SHELL_TRIM);
// Very important, generally parents must have a layout set to display children
myShell.setLayout (new FillLayout()); 
Browser browser = new Browser (myShell, SWT.NONE);
browser.setUrl (getLoginUrl());
myShell.layout();
myShell.open();
于 2013-05-10T14:31:21.537 回答