快速业务通道

使用Eclipse RCP进行桌面程序开发(五):2D绘图 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
s( " 画图板 " )) { 8           GC gc =  new GC(((CanvasView)vw).canvas); 9           gc.drawOval( 80 , 50 , 100 , 100 ); 10           gc.dispose(); 11       } 12     } 13   }

使用Eclipse RCP进行桌面程序开发(五):2D绘图(3)

时间:2011-04-13 海边沫沫

菜单项绘制矩形DrawRectAction.java的关键部分:

1  public  void run(IAction action)  { 2     // TODO 自动生成方法存根 3     IViewReference[] vfs = window.getActivePage().getViewReferences (); 4     IViewPart vw; 5      for ( int i = 0 ; i < vfs.length; i ++ ) { 6       vw = vfs[i].getView( false ); 7        if (vw.getTitle().equals( " 画图板 " )) { 8           GC gc =  new GC(((CanvasView)vw).canvas); 9           gc.drawRectangle( 280 , 50 , 100 , 100 ); 10           gc.dispose(); 11       } 12     } 13 14   }

菜单项绘制渐变矩形DrawGradientAction.java的关键部分:

1  public  void run(IAction action)  { 2     // TODO 自动生成方法存根 3     IViewReference[] vfs = window.getActivePage().getViewReferences (); 4     IViewPart vw; 5      for ( int i = 0 ; i < vfs.length; i ++ ) { 6       vw = vfs[i].getView( false ); 7        if (vw.getTitle().equals( " 画图板 " )) { 8           GC gc =  new GC(((CanvasView)vw).canvas); 9           gc.setBackground(window.getShell().getDisplay ().getSystemColor(SWT.COLOR_BLUE)); 10           gc.fillGradientRectangle( 80 , 200 , 100 , 100 , false ); 11 12           gc.dispose(); 13       } 14     } 15 16   }

菜单项绘制图像DrawImageAction.java的关键部分:

1  public  void run(IAction action)  { 2     // TODO 自动生成方法存根 3     IViewReference[] vfs = window.getActivePage().getViewReferences (); 4     IViewPart vw; 5      for ( int i = 0 ; i < vfs.length; i ++ ) { 6       vw = vfs[i].getView( false ); 7        if (vw.getTitle().equals( " 画图板 " )) { 8           GC gc =  new GC(((CanvasView)vw).canvas); 9           Image img =  new Image(window.getShell().getDisplay (), " E:\\img.gif " ); 10           gc.drawImage(img, 280 , 200 ); 11           gc.dispose(); 12       } 13     } 14 15   }

使用Eclipse RCP进行桌面程序开发(五):2D绘图(4)

时间:2011-04-13 海边沫沫

上面的方法虽然实现了绘图,但是还有一个问题,就是一旦我们的窗口最小化或者被别的 窗口遮挡后,图形就会消失。原因其实很简单,一旦我们的窗口最小化或者被别的窗口遮挡 后,控件就需要重画,所以我们画的图形就不见了,如果要让控件重画的时候也能绘制图形 ,就应该使用canvas.addPaintListener()为控件添加Paint事件的监听器。示例代码见下。

1 package cn.blogjava.youxia.views; 2 3 import org.eclipse.swt.widgets.Composite; 4 import org.eclipse.ui.part.ViewPart; 5 import org.eclipse.swt.wi

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号