SWT(JFace)体验之复制粘贴

 更新时间:2009年06月25日 12:16:18   作者:  
SWT(JFace)体验之复制粘贴
演示代码如下:
复制代码 代码如下:

package swt_jface.demo11;
import org.eclipse.swt.SWT;
import org.eclipse.swt.dnd.Clipboard;
import org.eclipse.swt.dnd.RTFTransfer;
import org.eclipse.swt.dnd.TextTransfer;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.dnd.TransferData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
public class CopyPaste {

    Display display = new Display();
    Shell shell = new Shell(display);
    public CopyPaste() {
        shell.setLayout(new GridLayout());

        ToolBar toolBar = new ToolBar(shell, SWT.FLAT);
        ToolItem itemCopy = new ToolItem(toolBar, SWT.PUSH);
        ToolItem itemPaste = new ToolItem(toolBar, SWT.PUSH);
        itemCopy.setText("Copy");
        itemPaste.setText("Paste");

        itemCopy.addListener(SWT.Selection, new Listener() {
            public void handleEvent(Event event) {
                Clipboard clipboard = new Clipboard(display);
                String plainText = "Hello World";
                String rtfText = "{\\rtf1\\b Hello World}";
                TextTransfer textTransfer = TextTransfer.getInstance();
                RTFTransfer rftTransfer = RTFTransfer.getInstance();
                clipboard.setContents(new String[]{plainText, rtfText}, new Transfer[]{textTransfer, rftTransfer});
                clipboard.dispose();
            }
        });

        itemPaste.addListener(SWT.Selection, new Listener() {
            public void handleEvent(Event event) {
                Clipboard clipboard = new Clipboard(display);
                TransferData[] transferDatas = clipboard.getAvailableTypes();
                for(int i=0; i<transferDatas.length; i++) {
                    if(RTFTransfer.getInstance().isSupportedType(transferDatas[i])) {
                        System.out.println("Data is available in RTF format");
                        break;
                    }
                }
                String plainText = (String)clipboard.getContents(TextTransfer.getInstance());
                String rtfText = (String)clipboard.getContents(RTFTransfer.getInstance());
                System.out.println("PLAIN: " + plainText + "\n" + "RTF: " + rtfText);
                clipboard.dispose();
            }
        });
        shell.pack();
        shell.open();

        while (!shell.isDisposed()) {
            if (!display.readAndDispatch()) {
                display.sleep();
            }
        }
        display.dispose();
    }
    public static void main(String[] args) {
        new CopyPaste();
    }
}

相关文章

  • spring基础概念AOP与动态代理理解

    spring基础概念AOP与动态代理理解

    这篇文章主要为大家详细介绍了spring基础概念AOP与动态代理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Mybatis-plus 双主键的实现示例

    Mybatis-plus 双主键的实现示例

    本文主要介绍了Mybatis-plus 双主键的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-05-05
  • Hibernate缓存机制实例代码解析

    Hibernate缓存机制实例代码解析

    这篇文章主要介绍了Hibernate缓存机制实例代码解析,介绍了查询缓存,一级二级缓存等内容,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Springboot处理跨域的实现方式(附Demo)

    Springboot处理跨域的实现方式(附Demo)

    这篇文章主要介绍了Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • Java获取项目路径方式System.getProperty(“user.dir“)

    Java获取项目路径方式System.getProperty(“user.dir“)

    这篇文章主要介绍了Java获取项目路径方式System.getProperty(“user.dir“),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 一文详解如何在SpringMVC的视图中渲染模型数据

    一文详解如何在SpringMVC的视图中渲染模型数据

    SpringMVC是一个基于Spring框架的Web框架,它提供了一种方便的方式来处理 HTTP 请求和响应,在SpringMVC中,视图是用来渲染模型数据的组件,它们负责将模型数据转换为HTML、JSON、XML等格式的响应,在本文中,我们将讨论如何在SpringMVC中的视图中渲染模型数据
    2023-07-07
  • 如何使用Spring-Test对Spring框架进行单元测试

    如何使用Spring-Test对Spring框架进行单元测试

    这篇文章主要介绍了如何使用Spring-Test对Spring框架进行单元测试,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • 使用springboot 打包插件去除jar包瘦身

    使用springboot 打包插件去除jar包瘦身

    这篇文章主要介绍了使用springboot 打包插件去除jar包瘦身的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 安装多个版本JDK后使用时的切换方法总结

    安装多个版本JDK后使用时的切换方法总结

    我们平时在window上做开发的时候,可能需要同时开发两个甚至多个项目,有时不同的项目对JDK的版本要求有区别,下面这篇文章主要给大家介绍了安装多个版本JDK后使用的切换方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • jar包中替换指定的class文件方法详解

    jar包中替换指定的class文件方法详解

    这篇文章主要为大家介绍了jar包中替换指定的class文件方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11

最新评论