写一个视图,里面放置一个label,设置图片
public class PlotView extends ViewPart {
public static final String ID = "com.ccnt.miner.view.plot"; //$NON-NLS-1$
private Label label;
public PlotView() {
// TODO Auto-generated constructor stub
}
@Override
public void createPartControl(Composite parent) {
// TODO Auto-generated method stub
Composite composite = new Composite(parent, SWT.NONE); // 不带边框
composite.setLayout(new GridLayout(1, false));
label = new Label(composite, SWT.FILL);
label.setImage(Activator.getImage("icons/arrowup.gif"));
label.setLayoutData(new GridData(GridData.FILL_BOTH));
}
@Override
public void setFocus() {
// TODO Auto-generated method stub
}
public void updateImage(String imagepath)
{
// label.setImage(Activator.getImage(imagepath));
label.setImage(SWTResourceManager.getImage(imagepath));
// label.setImage(SWTResourceManager.getImage("d://a.png"));//用<span style="font-family: Arial, Helvetica, sans-serif;">SWTResourceManager 可以加载任意路径下的图片如C盘,D盘,</span><span style="font-family: Arial, Helvetica, sans-serif;">Activator只能加载工程下的图片</span><span style="font-family: Arial, Helvetica, sans-serif;">
</span>
}
}打开图片的Action操作
//值打开一个plot视图
try {
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IViewPart vPart = page.showView(PlotView.ID);
((PlotView)vPart).updateImage("d://icons/a.png") ;//调用视图的更新方法,用于更新视图内的表数据
} catch (PartInitException e) {
// handle exception
} 打开多个视图
//打开多个plot视图
try {
Random rand = new Random();
int instanceNum = rand.nextInt(100);
System.out.println("instanceNum:" + instanceNum);
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IViewPart vPart = page.showView(PlotView.ID, Integer.toString(instanceNum), IWorkbenchPage.VIEW_ACTIVATE);
((PlotView)vPart).updateImage(imgpath) ;//调用视图的更新方法,用于更新视图内的表数据
instanceNum++;
} catch (PartInitException e) {
// handle exception
} plugin.xml中设置 添加allowMultiple
<view
allowMultiple="true"
class="com.ccnt.miner.view.PlotView"
id="com.ccnt.miner.view.plot"
name="Plot"
restorable="true">
</view>SWTResourceManager.jar 包下载:http://download.youkuaiyun.com/detail/luoww1/9283305
本文详细介绍了如何使用SWT创建一个包含图片的自定义视图,并展示了如何通过Action操作动态更新视图内的图片。此外,文章还演示了如何打开多个实例并配置允许多个视图同时显示。
277

被折叠的 条评论
为什么被折叠?



