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

SWT屏幕组件截屏

    博客分类:
  • Java
阅读更多

 

import org.eclipse.swt.*;
import org.eclipse.swt.events.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.widgets.*;

public class Snippet95 {

	public static void main(String[] args) {
		final Display display = new Display();
		final Shell shell = new Shell(display);
		shell.setText("Widget");

		final Table table = new Table(shell, SWT.MULTI);
		table.setLinesVisible(true);
		table.setBounds(10, 10, 100, 100);
		for (int i = 0; i < 9; i++) {
			new TableItem(table, SWT.NONE).setText("item" + i);
		}

		Button button = new Button(shell, SWT.PUSH);
		button.setText("Capture");
		button.pack();
		button.setLocation(10, 140);
		button.addListener(SWT.Selection, new Listener() {
			public void handleEvent(Event event) {
				Point tableSize = table.getSize();
				GC gc = new GC(table);
				final Image image = new Image(display, tableSize.x, tableSize.y);
				gc.copyArea(image, 0, 0);
				gc.dispose();

				Shell popup = new Shell(shell);
				popup.setText("Image");
				popup.addListener(SWT.Close, new Listener() {
					public void handleEvent(Event e) {
						image.dispose();
					}
				});

				Canvas canvas = new Canvas(popup, SWT.NONE);
				canvas.setBounds(10, 10, tableSize.x + 10, tableSize.y + 10);
				canvas.addPaintListener(new PaintListener() {
					public void paintControl(PaintEvent e) {
						e.gc.drawImage(image, 0, 0);
					}
				});
				popup.pack();
				popup.open();
				//如果要保存为文件

				ImageLoader imageLoader = new ImageLoader();
				ImageData imageData = image.getImageData();
				imageLoader.data = new ImageData[] {imageData};                 
				//The reason the data field is an array of ImageData is to support
				//image file formats with more than one frame such as animated GIFs or interlaced JPEG files.
				imageLoader.save("C:/Idea_PureWhite.jpg",SWT.IMAGE_JPEG);
			}
		});
		shell.pack();
		shell.open();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch())
				display.sleep();
		}
		display.dispose();		
		
	}
}
 

 

 

 

分享到:
评论

相关推荐

    swt仿qq截图

    "SWT仿qq截图"是指利用SWT库实现类似QQ的截图功能,即创建一个应用程序,可以捕捉屏幕上的图像,并提供编辑和分享等操作。 在SWT中,我们可以使用`Display`类来创建一个新的窗口,`Shell`类表示窗口本身,而`...

    java SWT编写的截图程序

    3. **丰富的组件库:** SWT提供了大量可自定义的控件,方便构建复杂的应用界面。 总的来说,利用Java SWT编写截图程序是一种高效且灵活的方式,它允许开发者创建功能丰富、用户体验良好的桌面应用。通过上述的各个...

    SWT.rar_SWT

    总结来说,这个压缩包包含了一个使用SWT实现的屏幕截图应用,涉及到了SWT的基础组件如`Dialog`、`Composite`和`Image`,以及事件处理、图形绘制和多线程技术。学习这个应用可以加深对SWT的理解,为开发更复杂的Java ...

    java实现网页截图含DJNativeSwing组件JAR包

    DJNativeSwing是一个开源库,它提供了Java Swing与原生操作系统(如Windows、Mac OS等)的深度集成,使得Java程序能够更好地利用操作系统特性,比如在本例中,它可以用于实现屏幕截图功能。 DJNativeSwing库主要...

    swt-win64-3.6.2.jar

    SWT,全称为Standard Widget Toolkit,是由Eclipse基金会开发的一个开源GUI库,它是Java平台上的一种替代Swing的组件库。与Swing不同,SWT利用了操作系统原生的控件,因此可以提供更加接近本机应用的用户体验。 在...

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

    这个功能对于屏幕截图、报告生成或网络内容的离线保存非常有用。 首先,让我们了解一下SWT。SWT(Standard Widget Toolkit)是Eclipse基金会开发的一个开源GUI库,用于构建Java应用程序。它提供了一组与操作系统...

    DJ-Mo-swt.zip

    标题中的"DJ-Mo-swt.zip"是一个压缩包文件,其中包含了多个与Java SWT(Standard Widget Toolkit)相关的组件。SWT是Java编程中用于构建图形用户界面(GUI)的一个开源库,它提供了一套与操作系统紧密集成的控件,...

    JAVA HTML截图.rar

    3. 使用DJNativeSwing库将Swing组件嵌入到SWT中,因为SWT提供了更直接的屏幕截图功能。 4. 调用SWT的`org.eclipse.swt.graphics.Device`和`org.eclipse.swt.graphics.Rectangle`等类来获取屏幕区域并截图。 5. 将...

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

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

    screendemo.rar

    然后,利用SWT提供的绘图API,如GC(Graphics Context),可以捕获屏幕上的指定区域,完成截图操作。此外,项目可能还包含了图像处理功能,比如裁剪、保存、标注等,以便于用户对截图进行编辑。 "可直接部署使用"这...

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

    调整缩放范围,使其既可放大屏幕也可缩小屏幕 3. 核心调整: ·添加SWT/JFace的jar包到工程lib目录下 ·BasicWindow添加对鼠标移动点击的事件监听,以实现组件可用鼠标拖拽功能 ·BasicWindow添加在...

    uiautomatorviewer

    1. **UI组件可视化**:通过启动uiautomatorviewer.bat,开发者可以看到一个实时的设备或模拟器屏幕截图,图上的每一个UI组件都被清晰地标注出来,便于识别和定位。 2. **节点信息查看**:点击截图中的任何组件,...

    hypersnap

    标题“hypersnap”可能指的是HyperSnap,一个流行的屏幕截图工具,它允许用户捕捉屏幕上的任何部分或窗口,并提供编辑和分享截图的功能。在IT领域,屏幕截图工具是日常工作中非常实用的辅助软件,尤其在远程协作、...

    功能强大的PC电脑端JAVA手机游戏模拟器KEmulator

    除了基本的运行游戏功能,KEmulator可能还包含了游戏管理、快捷键设置、屏幕截图、录像等功能,提升玩家的使用体验。 6. **社区与资源** KEmulator的用户群体广泛,通常会有活跃的论坛或社区,玩家可以在这里分享...

    JAVA上百实例源码以及开源项目源代码

    1个目标文件 摘要:Java源码,文件操作,压缩包查看 Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、...

    java源码包---java 源码 大量 实例

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...

    java源码包2

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码...

    java源码包3

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码...

    java源码包4

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    1个目标文件 摘要:Java源码,文件操作,压缩包查看 Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、...

Global site tag (gtag.js) - Google Analytics