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");