`
king_tt
  • 浏览: 2119656 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

SWT中的canvas

 
阅读更多

Canvas主要用于显示图像,既可以在Canvas上画图,也可以将图片显示于其中。

下面通过一个小程序,来演示Canvas使用的3个主要方面:设置图像、更换图像、清除图像。

其代码如下:

package swt;
import java.io.*;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.*;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;

public class HelloWorld {
 public static void main(String[] args) {
  final Display display=Display.getDefault();
  final Shell shell=new Shell();
shell.setLayout(new RowLayout());
final Canvas canvas=new Canvas(shell,SWT.BORDER);
//监听canvas的重绘事件
canvas.addPaintListener(new PaintListener(){
 public void paintControl(final PaintEvent event){
  Image image=(Image)canvas.getData();
  if(image!=null){
   event.gc.drawImage(image,10,10);//定位图像左上角距canvas左上角的距离
  }
 }
});
final Image refreshImage=new Image(display,"E:\\workspace\\canvas\\src\\swt\\1.jpg");
final Image nextIamge=new Image(display,"E:\\workspace\\canvas\\src\\swt\\2.jpg");

Button button1=new Button(shell,SWT.NONE);
button1.setText("大力水手");
button1.addSelectionListener(new SelectionAdapter(){
 public void widgetSelected(SelectionEvent e){
  canvas.setData(nextIamge);
  canvas.redraw();
 }
});
Button button2=new Button(shell,SWT.NONE);
button2.setText("海绵宝宝");
button2.addSelectionListener(new SelectionAdapter(){
 public void widgetSelected(SelectionEvent e){
  canvas.setData(refreshImage);
  canvas.redraw();
 }
});
Button clearButton=new Button(shell,SWT.NONE);
clearButton.setText("清除图像");
clearButton.addSelectionListener(new SelectionAdapter(){
 public void widgetSelected(SelectionEvent e){
  canvas.setData(null);
  canvas.redraw();
 }
});
shell.layout();
shell.open();
shell.setSize(300, 200);
while(!shell.isDisposed()){
 if(!display.readAndDispatch())
  display.sleep();
}
display.dispose();
 }

}

分享到:
评论

相关推荐

    SWT中实现shell Canvas Composite等控件的背景透明

    SWT中实现shell Canvas Composite等控件的背景透明

    基于SWT的枪战游戏(主要是Canvas)

    里面有运行包和源代码。目前只是做了个大概很多细节没有处理。 如果有好的建议欢迎提出。大家一起努力! 我的邮箱是cuiran2001@163.com

    org.eclipse.swt.win32

    org.eclipse.swt.SWT.class org.eclipse.swt.SWTError.class org.eclipse.swt.SWTException.class org.eclipse.swt.accessibility.ACC.class org.eclipse.swt.accessibility.Accessible.class org.eclipse.swt....

    [开源]用SWT/JFace实现的放大镜软件jZoomer v1.2.0(附源码)

    ·修正开始/暂停监视切换时有时会报空指针异常的错误 2. 功能添加: ·实现静止时图片的缩放 3. 核心调整: ·动态\静止开关中对图片处理的逻辑改变,以实现静止时图片的缩放功能 ·...

    SWT GC 五子棋

    private Canvas canvas; private Rectangle clickArea; private static int N=20; private static int DIV=15; private Rectangle[][] rect=new Rectangle[N][N]; private String[][] flags=new String[N][N];...

    图形上下文导论(Introduction to SWT Graphics)

    org.eclipse.swt.graphics包(package),包含了管理图形资源的类。只要实现了org.eclipse....画布(Canvas)控件,因为不同的绘画操作,拥有很多构造风格常量允许你指定何时以及如何产生绘画,本篇也将展示这些东西。

    PluginPDF&Notes.7z

    插件开发核心技术,主要介绍插件开发的核心知识要点, 包括行为(Action)、视图(ViewPart)、编辑器(Editor)、透视图(Perspective) ...SWT 画布 Canvas,处理所有图像显示及交互事件 (本地SWT层)

    org.eclipse.swt.opengl.GLCanvas

    SWT下的GLCanvas源码,实现渲染OPENGGL的canvas

    【重大更新】用SWT/JFace实现的放大镜JZoomer V1.1.1(附源码)

    核心调整: ·添加SWT/JFace的jar包到工程lib目录下 ·BasicWindow添加对鼠标移动点击的事件监听,以实现组件可用鼠标拖拽功能 ·BasicWindow添加在屏幕中央显示/随鼠标位置显示方法 ·更改屏幕...

    第8章 SWT复杂控件的使用.pptx

    8.1 样式文本(StyledText) 8.2 SWT表格(Table)的设计 8.3 SWT树(Tree)的设计 8.4画布Canvas与图像的使用 8.5剪切板的使用及SWT的拖放操作

    Eclipse_Swt_Jface_核心应用_部分19

    第10章 SWT中的拖放支持 211 10.1 可拖放的树 211 10.2 拖放原理概述 214 10.3 拖放源(DragSource) 215 10.3.1 创建拖放源对象 215 10.3.2 定义拖放源数据传输类型 215 10.3.3 处理拖放源事件 216 ...

    SWT(JFace) 图片浏览器 实现代码

    代码如下: ImageViewer.java 代码如下:package swt_jface.demo11; import org.eclipse.swt.SWT; import org.eclipse.swt.events.PaintEvent; import org.eclipse.swt.events.PaintListener; import org.eclipse.swt...

    glimmer-dsl-swt:用于SWT的Glimmer DSL(JRuby桌面开发GUI框架)

    适用于SWT 4.18.4.5的Glimmer DSL JRuby桌面开发GUI框架 是用编写的本机GUI跨平台桌面开发库,它是的OS线程更快的JVM版本。 的主要创新是声明性 ,它依靠强大的实现了桌面应用程序用户界面的高效生产。 还通过...

    用java写的打飞机游戏,初学java。

    用eclipse、SWT写的打飞机游戏,canvas的swt.doublebuffer属性感觉很好用,不知道swing里面有没有类似的功能。看到有人说没有原码,我确实没把原码放上来,不好意思,就把资源分去掉算了。

    simple.zip

    swt常有控件入门demo Button1.java Canvas1.java Combo1.java Menu1.java SashForm1.java ScrolledComposite1.java SimpleEditor1.java SimpleEditor2.java Slider1.java TabFolder1.java ToolBarExample.java ...

    Android实现简单时钟View的方法

    package com.example.swt369.simpleclock; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.support.annotation.Nullable; import android.util....

Global site tag (gtag.js) - Google Analytics