我在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);
我做错了什么?
我希望有人可以帮助我。
谢谢!
答案 0 :(得分:0)
你想要org.eclipse.ui.IWorkbenchPage.showView(String)。这将允许您按ID打开视图。如果您的按钮位于第一个视图的工具栏中,则可以使用 getSite()。getPage()从视图中获取工作台页面。
答案 1 :(得分:0)
ActorCalendar actorCalendarView = new ActorCalendar();
尝试{ IViewPart view = PlatformUI.getWorkbench()。getActiveWorkbenchWindow()。getActivePage()。showView(“de.uhd.ifi.se.pcm.bppcm.ui.ActorCalendar”); if(查看instanceof ActorCalendar){ actorCalendarView =(ActorCalendar)视图; actorCalendarView.doStuff(); } } catch(PartInitException ex){ //如果无法显示视图,showView()可能会抛出异常 ex.printStackTrace(); }
这对我有用!