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() {}
}
我希望删除"Hello"
,并在我的标签上打印一个值"val"
。 "val"
来自不同的视图,并作为方法传递。我怎么能这样做?
答案 0 :(得分:0)
您需要调用对象的template <class T> class A;
template <> class A<float> : MyConstData<13,42,-1> {};
template <> class A<double> : MyConstData<0,0,42> {};
,但它只在本地知道。你需要让它成为一个成员然后你可以做到:
setText
此外,您要设置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() {}
}
对象的文本,而不是其值。
答案 1 :(得分:0)
要设置处理程序或其他类的值,您需要查找现有的视图对象(使用new ImageView
创建新的视图对象将无效)。
使用以下内容查找视图:
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");