Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我想在EclipseRCP中将标签的值从Class A-View设置为Class B-View_Java_Eclipse_View_Eclipse Plugin_Rcp - Fatal编程技术网

Java 我想在EclipseRCP中将标签的值从Class A-View设置为Class B-View

Java 我想在EclipseRCP中将标签的值从Class A-View设置为Class B-View,java,eclipse,view,eclipse-plugin,rcp,Java,Eclipse,View,Eclipse Plugin,Rcp,我希望删除“Hello”,并在标签上打印一个值“val”“val”来自不同的视图,并作为方法传递。如何执行此操作?您需要调用对象的setText,但它只是局部已知的。您需要使其成为成员,然后您可以执行以下操作: public class ImageViewer extends ViewPart { String text; public ImageViewer() {} public void setA(String val) { String te

我希望删除
“Hello”
,并在标签上打印一个值
“val”
<代码>“val”来自不同的视图,并作为方法传递。如何执行此操作?

您需要调用对象的
setText
,但它只是局部已知的。您需要使其成为成员,然后您可以执行以下操作:

public class ImageViewer extends ViewPart {

    String text;

    public ImageViewer() {}

    public void setA(String val) {
        String text=val;    
    }

    @Override
    public void createPartControl(Composite parent) {
        Label labelMsg1 = new Label(parent, SWT.NONE);  
        labelMsg1.setText("Hello"); 
    }

    public void setFocus() {}

}

此外,您希望设置标签对象的文本,而不是其值。

要从处理程序或其他类设置值,您需要找到现有的视图对象(使用
新图像视图创建新视图对象将不起作用)

使用以下方法查找视图:

public class ImageViewer extends ViewPart {

    String text;
    protected Label labelMsg1;

    public ImageViewer() {}

    public void setA(String val) {
        String text=val; 
        labelMsg1.setText(val);   
    }

    @Override
    public void createPartControl(Composite parent) {
        if (labelMsg1 == null) {
            labelMsg1 = new Label(parent, SWT.NONE);  
            labelMsg1.setText("Hello");
        } 
    }

    public void setFocus() {}

}
如果视图尚未显示,则可以使用以下方式显示:

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

IViewPart view = page.findView("id of the view");

if (view != null) {
  ImageView imageView = (ImageView)view;

  imageView.setA("new text");
}

这其中的哪一部分导致了问题?视图中的代码,或如何查找视图,或。。。?
IViewPart view = page.showView("id of the view");

ImageView imageView = (ImageView)view;

imageView.setA("new text");