`
xiangzhengyan
  • 浏览: 126464 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

swt控件内容转换成图片

 
阅读更多

package tt;

import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
import org.eclipse.swt.graphics.ImageLoader;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.internal.win32.OS;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class Test extends Shell {

	/**
	 * Launch the application
	 * @param args
	 */
	public static void main(String args[]) {
		try {
			Display display = Display.getDefault();
			Test shell = new Test(display, SWT.SHELL_TRIM);
			shell.open();
			shell.layout();
			while (!shell.isDisposed()) {
				if (!display.readAndDispatch())
					display.sleep();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * Create the shell
	 * @param display
	 * @param style
	 */
	public Test(Display display, int style) {
		super(display, style);
		createContents();
	}

	/**
	 * Create contents of the window
	 */
	protected void createContents() {
		setText("SWT Application");
		setSize(500, 375);

		final Browser browser = new Browser(this, SWT.NONE);
		browser.setUrl("www.google.com.hk");
		browser.setBounds(10, 10, 374, 216);

		final Button button = new Button(this, SWT.NONE);
		button.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(final SelectionEvent e) {
				test(Test.this,browser,0,0,400,300,"d:/test.jpg");
			}
		});
		button.setText("button");
		button.setBounds(33, 274, 48, 22);
		//
	}

	protected void test(Shell shell,Browser browser,int xDifference,int yDifference,int imageWidth, int imageHeight,String imgUrl) { 
    	
        GC gc = new GC(browser);
        //设置默认的宽度
        if(imageWidth<=0){
       	 imageWidth=1050;
        }
        
        //设置默认的高度
        if(imageWidth<=0){
       	 imageHeight=450;
        }
         
      
       //始终最前  (50:x轴,50:主轴,1050:图像的x轴的长度,450:图像的y轴的长度)
       OS.SetWindowPos(shell.handle , OS.HWND_TOPMOST, 50 , 50 ,imageWidth, imageHeight , SWT.NULL); 
       shell.setVisible(true); 
       shell.open();
       shell.layout();
       try {
			Thread.sleep(30);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
       Point size = browser.getSize(); 
            
      
       Image image = new Image(shell.getDisplay(), size.x-xDifference, size.y-yDifference);  
       gc.copyArea(image, 0, 0); 
       shell.setVisible(false); 
       
      // BufferedImage bufferedImage=new BufferedImage(500,500,BufferedImage.TYPE_INT_RGB);
       
       ImageLoader imageLoader = new ImageLoader(); 
       imageLoader.data = new ImageData[] {image.getImageData()}; 
       imageLoader.save(imgUrl, SWT.IMAGE_JPEG); 
       gc.dispose(); 
       image.dispose(); 
       //display.dispose();
       
      
       //System.out.println("captured"); 
   }

	@Override
	protected void checkSubclass() {
		// Disable the check that prevents subclassing of SWT components
	}

}
 
分享到:
评论
1 楼 nujiah001 2011-07-27  
rap中怎么转化???gc没gc.copyArea方法,谁知道,rap中怎么生成图片吗

相关推荐

    DJNativeSwing-SWT有关的所有jar,java将HTML页面转为图片

    总之,DJNativeSwing-SWT是一个强大的工具,结合了SwT的性能优势和Java的跨平台能力,同时提供了将HTML页面转换为图片的功能,这对于需要处理网页内容的Java应用来说是一项宝贵的资源。正确理解和使用这个库,可以...

    SWT中bean与控件的数据绑定

    在SWT中,数据绑定是一种将业务对象(通常称为bean)的属性与UI控件的值进行关联的技术,使得UI的变化能够实时反映到数据模型中,反之亦然。这种双向绑定机制极大地简化了UI与数据模型之间的交互,提高了代码的...

    swt程序发布,jar转exe

    标题中的“swt程序发布,jar转exe”指的是将基于Java SWT(Standard Widget Toolkit)编写的程序转换成可执行的Windows EXE文件。SWT是Java平台上的一个GUI库,它提供了与本机操作系统更紧密集成的用户界面,使得...

    DJNativeSwing-SWT.jar、DJNativeSwing.jar、swt-win-x64.jar

    例如,它可以帮助开发者使用SWT的表格控件,同时保持Swing的事件处理和布局管理机制。 接下来是swt-win-x64.jar,这是一个针对Windows 64位操作系统的SWT库。SWT库是平台相关的,因为它直接与底层操作系统进行交互...

    swt-4.3-win64.rar,swt-4.3-win32-x86.jar

    在描述中提到了"swt-4.3-win64.jar"是一个HTML网页生成图片的工具,这意味着它可以将HTML内容转换为图像。这种功能在多种场景下都非常实用,例如,当需要在没有网络环境下展示网页内容,或者在报告、演示文稿中嵌入...

    swt-win64-3.6.2.jar

    为了将HTML网页转换为图片,开发者可能需要使用到如Robot类(Java AWT库的一部分)来截取屏幕上的特定区域,或者使用WebBrowser控件提供的API(如果有的话)来直接获取网页的图像数据。这个过程可能涉及到页面渲染、...

    Java SWT 简单 拼图 游戏 源码

    这通常通过Java的`java.awt.image.BufferedImage`类和`javax.imageio.ImageIO`类实现,读取图片文件并将其转换为可以在SWT控件中显示的格式。 2. 图片分割:为了创建拼图,原始图片需要被分割成若干个部分。这可以...

    Swt的API使用说明

    SWT控件** Swt API提供了多种控件,如按钮(Button)、文本框(Text)、列表(List)、组合框(Combo)、滚动条(ScrollBar)等,这些控件与各个操作系统平台的原生控件保持一致,提供更好的用户体验。例如,`...

    SWT视频播放器

    9. **播放控制**:视频播放器通常有快进、快退、音量控制、全屏切换等功能,这些都是通过多媒体库和SWT控件的组合实现的。 10. **错误处理**:良好的播放器会处理各种可能出现的问题,如文件损坏、编码不支持、资源...

    使用swt开发的程序用于web上

    在描述中提到,现在可以通过特定的方法将SWT开发的程序应用于Web环境,这通常涉及到技术上的转换和适应。 将SWT程序移植到Web环境,意味着我们需要将桌面应用的特性转换为适合浏览器运行的代码。一种可能的方法是...

    java SWT简单小工具

    4. `swing2swt.jar`:这是一个将Java Swing组件转换为SWT组件的库,可能用于兼容已有的Swing代码或者提供一些额外的功能。 5. `.project`:这是Eclipse项目的配置文件,包含项目类型、构建设置和其他元数据。 6. `...

    SWT-Designer入门教程

    7. **代码生成与编辑**:SWT-Designer允许在设计视图和源代码视图之间切换,你可以看到所见即所得的设计如何转换为Java代码,也可以直接编辑代码来微调细节。 通过这个入门教程,初学者将能够快速上手SWT-Designer...

    swt仿qq截图

    在SWT中,我们可以使用`Display`类来创建一个新的窗口,`Shell`类表示窗口本身,而`Composite`类用于组合和管理控件。为了实现截图,我们需要以下关键步骤: 1. **捕获屏幕**:SWT不直接提供屏幕捕获功能,但可以...

    SWT_Designer.rar_SWT_SWT_Designer_java swt_swt designer_swt desi

    6. **学习使用**:SWT Designer提供了一系列的控件,如按钮、文本框、表格等,你可以通过拖放的方式将它们添加到设计视图中,并调整其属性。此外,SWT Designer还支持布局管理,例如网格布局、表格布局和填充布局等...

    swt Tree 例子项目代码

    `ContentProvider`负责提供数据模型,而`LabelProvider`则负责将这些数据转换成可视化的表示。通过这两者,你可以实现动态加载和更新树结构,使得UI能够反映数据模型的变化。 在给定的项目中,我们可以期待看到如何...

    SuperMap Objects Java: SWT框架 快速入门

    - **创建地图视图**:利用SWT控件创建一个用于显示地图的Canvas,然后通过SuperMap Objects Java API加载地图数据并设置视图。 - **实现基本操作**:这包括但不限于缩放、平移、旋转地图,添加图层,查询地理信息,...

    将网页生成图片的小功能

    通常,我们会先将WebBrowser控件的绘制区域转换为Bitmap对象,然后保存为图片文件,如JPEG或PNG格式。 4. **HTML到图像转换**:另一种方法是使用服务端库(如Puppeteer for Node.js)或API,它们可以完整地渲染网页...

    SWT Designer 对应eclipse3.7版本插件

    2. 自动代码生成:设计的界面会被自动转换为SWT和JFace代码,减少了手动编码的工作量。 3. 支持多种布局:包括网格布局、表格布局、填充布局等多种布局管理器,满足不同界面需求。 4. 实时预览:在设计过程中,可以...

    Java SWT(win32 X86) 开发包

    5. `org.eclipse.jface_3.11.0.v20150602-1400.jar`:Eclipse JFace是基于SWT的高级用户界面组件库,提供了一些抽象层,简化了对SWT控件的使用,如对话框、表视图等。 6. `org.eclipse.jface.text_3.10.0.v20150603...

    SWT_JFace.rar_ImageAnalyzer_SWT-jface_swt jface

    SWT 提供了一系列的控件,如按钮、文本框、列表、树等,这些控件直接映射到操作系统提供的原生控件,因此在不同平台上表现一致,具有高性能和良好的用户体验。 JFace,则是建立在 SWT 之上的更高层次的抽象,它简化...

Global site tag (gtag.js) - Google Analytics