打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SWT 的字体(Font)、颜色(Color)、图像(Image)和绘图

下面一个例子展示了Font、Color、Image 以及绘图的基本内容。

  1. import org.eclipse.swt.SWT;
  2. import org.eclipse.swt.events.PaintEvent;
  3. import org.eclipse.swt.events.PaintListener;
  4. import org.eclipse.swt.graphics.Font;
  5. import org.eclipse.swt.graphics.Image;
  6. import org.eclipse.swt.layout.FillLayout;
  7. import org.eclipse.swt.widgets.Canvas;
  8. import org.eclipse.swt.widgets.Display;
  9. import org.eclipse.swt.widgets.Shell;
  10. public class CanvasSample {
  11. private Image image = null;
  12. private Shell shell = null;
  13. private Canvas canvas = null;
  14. public CanvasSample(){
  15. createContent();
  16. }
  17. public void createContent(){
  18. shell = new Shell();
  19. shell.setLayout(new FillLayout());
  20. image = new Image(shell.getDisplay(), getClass().getResourceAsStream('1.gif'));
  21. canvas = new Canvas(shell, SWT.NONE);
  22. canvas.addPaintListener(new PaintListener(){
  23. public void paintControl(PaintEvent e){
  24. //绘制图像
  25. e.gc.drawImage(image, 10, 10);
  26. //绘制椭圆
  27. e.gc.drawOval(20, 20, 200, 100);
  28. //绘制直线
  29. e.gc.drawLine(20,10,100,20);
  30. Font font = new Font(e.display, 'Arial', 14, SWT.BOLD | SWT.ITALIC);
  31. //绘制字符串
  32. e.gc.drawString('This is a String', 30, 20);
  33. //设置display前景色
  34. e.gc.setForeground(e.display.getSystemColor(SWT.COLOR_GREEN));
  35. //设置display字体
  36. e.gc.setFont(font);
  37. //设置display 背景色
  38. e.gc.setBackground(e.display.getSystemColor(SWT.COLOR_DARK_GRAY));
  39. //再绘制字符串
  40. e.gc.drawString('This is a String', 30, 50);
  41. font.dispose();
  42. }
  43. });
  44. shell.setSize(200, 150);
  45. }
  46. public Canvas getCanvas(){
  47. return canvas;
  48. }
  49. public void setCanvas(Canvas canvas){
  50. this.canvas = canvas;
  51. }
  52. public Image getImage(){
  53. return image;
  54. }
  55. public void setImage(Image image){
  56. this.image = image;
  57. }
  58. public Shell getShell(){
  59. return shell;
  60. }
  61. public void setShell(Shell shell){
  62. this.shell = shell;
  63. }
  64. public static void main(String[] args){
  65. Display display = Display.getDefault();
  66. CanvasSample cSample = new CanvasSample();
  67. cSample.getShell().open();
  68. while(!cSample.getShell().isDisposed()){
  69. if(!display.readAndDispatch())
  70. display.sleep();
  71. }
  72. cSample.getImage().dispose();
  73. display.dispose();
  74. }
  75. }

运行如下图所示:

该程序画了一个图片,一个椭圆,一个直线,一个字符串,然后设置前景色背景色和字体后重新画字符串。

另外,画字符串的方法还可以使用

drawString(String string, int x, int y, boolean is Transparent)

来指定文本是否透明显示。透明显示则看不到背景色,而直线显示面板内容。


SWT 的绘图功能是通过 org.eclipse.swt.graphics 包中的GC 类来完成的。任何实现了Drawable 的类都可以进行绘制。通常使用GC 对象有两种用法:

1. 构造GC 对象

  GC(Drawable drawable)

  GC(Drawable drawable, int style).

其中style 可以为 SWT.LEFT_TO_RIGHT 或 SWT.RIGHT_TO_LEFT 或 SWT.NONE。

2. 在绘图监听器中完成绘制。

  控件通过addPaintListener 方法注册绘图监听器。上面的例子中就是用了这种方式。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SWT 图形绘画接口详解 (SWT Graphics)
SWT 绘图技术
SWT 全接触
Taking a look at SWT Images
使用Eclipse RCP进行桌面程序开发(五):2D绘图
JAVA.SWT/JFace: SWT高级控件之SWT系统资源
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服