0

我正在eclipse中用Java编写程序。我有两个从超类 ViewPart 扩展的类。现在我只想自动打开一个类(这意味着当我运行程序时),另一个应该通过第一个 UI 上的按钮打开。但我不知道如何手动打开 ViewPart 类。

我现在试过了

ActorCalendar actorCalendar = new ActorCalendar(); 尝试 { actorCalendar.getSite().getPage().showView("id", null, IWorkbenchPage.VIEW_VISIBLE); } catch (PartInitException e1) { // TODO 自动生成的 catch 块 e1.printStackTrace(); }

这里的ActorCalendar 类是从ViewPart 类扩展而来的类。此代码块在从 ViewPart 扩展的另一个类的 Button 中实现。但随后我在实现此代码块的类中得到一个 NullPointerException。在行中:

actorCalendar.getSite().getPage().showView("id", null, IWorkbenchPage.VIEW_VISIBLE);

我做错了什么?

我希望有一个人可以帮助我。

谢谢 !

4

2 回答 2

0

ActorCalendar actorCalendarView = new ActorCalendar();

尝试 { IViewPart 视图 = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("de.uhd.ifi.se.pcm.bppcm.ui.ActorCalendar"); if (view instanceof ActorCalendar) { actorCalendarView = (ActorCalendar) view; actorCalendarView.doStuff(); } } catch (PartInitException ex) { // 如果视图无法显示,showView() 会抛出异常 ex.printStackTrace(); }

这对我有用!

于 2013-06-25T21:27:44.580 回答
0

你想要org.eclipse.ui.IWorkbenchPage.showView(String)。这将允许您按 ID 打开视图。如果您的按钮位于第一个视图的工具栏中,则可以使用getSite().getPage()从视图中获取工作台页面。

于 2013-06-18T12:34:47.353 回答