我想将标签的值从 Class A - View 设置为 Class B - 在 Eclipse RCP 中查看
I want to set Value of label from Class A - View to Class B - View in Eclipse RCP
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"
来自不同的视图并作为方法传递。我该怎么做?
您需要调用对象的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() {}
}
另外,您想设置 Label
对象的文本,而不是它的值。
要从处理程序或其他 class 设置值,您需要找到现有的视图对象(使用 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");
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"
来自不同的视图并作为方法传递。我该怎么做?
您需要调用对象的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() {}
}
另外,您想设置 Label
对象的文本,而不是它的值。
要从处理程序或其他 class 设置值,您需要找到现有的视图对象(使用 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");