Java Eclipse插件帮助-在自定义视图中显示结果

Java Eclipse插件帮助-在自定义视图中显示结果,java,view,eclipse-plugin,Java,View,Eclipse Plugin,我是eclipse插件开发的新手,因此,如果这个问题非常琐碎,请耐心等待。我正在开发一个eclipse插件。我几乎已经完成了它,只是我被困在了最后一步。我已经在plugin.xml文件中创建了自定义视图,并且我还用它实现了一个IAction函数来执行选择的相应操作。因此,使用此选项的逻辑是,在用户执行特定操作后,如果打开了自定义视图,则应在自定义视图中显示操作的结果,否则应通过程序打开视图,然后在其中显示结果。我写的代码如下- public class example extends ViewP

我是eclipse插件开发的新手,因此,如果这个问题非常琐碎,请耐心等待。我正在开发一个eclipse插件。我几乎已经完成了它,只是我被困在了最后一步。我已经在plugin.xml文件中创建了自定义视图,并且我还用它实现了一个IAction函数来执行选择的相应操作。因此,使用此选项的逻辑是,在用户执行特定操作后,如果打开了自定义视图,则应在自定义视图中显示操作的结果,否则应通过程序打开视图,然后在其中显示结果。我写的代码如下-

public class example extends ViewPart
{
private Text text;

@Override
public void createPartControl(Composite parent)
{
  Text text = new Text(parent,SWT.NULL);
  this.text = text;
}

@Override
public void setFocus()
{
}

@Override

 @Override
 public void printOnView(String str)
 {
   text.setText(str);
 } 
 }

问题是每次程序在public void run()函数的第一个setText()语句中使用NullPointerExection失败时。我已经尽了最大的努力,却找不到解决办法。如果我在同一个createPartControl()函数中给出setText()语句,当我第一次打开视图时,它将在视图中显示文本,但是如果我从外部尝试,它将不起作用。我在这里束手无策,让我警告一下,我的整个方法可能是错误的,因为我对插件开发非常陌生。如果有人能在这个问题上给我一些帮助或指导,我会很高兴。提前谢谢

Eclipse正在创建两个对象实例——一个用于视图,一个用于操作。对于视图,将调用
createPartControl
,对于操作,仅调用
run
方法,并且由于createPartControl尚未运行,因此文本字段为空

您应该使用两个独立的类,一个用于视图,一个用于操作

在行动课上,你需要找到自己的观点,比如:

IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();

IViewPart viewPart = page.findView("your view id");

MyViewClass myViewClass = (MyViewClass)viewPart;

// TODO call a method in MyViewClass to set the text

这是假设视图已打开。如果视图未打开,您必须打开它。

谢谢您的回复@greg-449。我有一个疑问,文本对象应该放在createPartControl函数中,或者可以放在单独的函数中然后调用。您应该在
createPartControl
中为视图创建控件我刚刚在createPartControl中添加了文本对象,并在另一个函数中调用了它。我已经编辑了代码。它没有抛出任何错误,但也没有显示文本@greg-449工作正常谢谢@greg-449