2017-01-08 70 views
0
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"來自不同的觀點,並作爲一種方法通過。我怎樣才能做到這一點?我想從一類集標籤的價值 - 查看B級 - 查看Eclipse RCP的

+0

哪一部分,這是導致問題?視圖中的代碼,或者如何查找視圖,或...? –

回答

0

您需要調用對象的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對象,而不是它的價值的文本。

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