开发者

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;

impor编程客栈t 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 Copyhttp://www.devze.comPaste {

    Display display = n开发者_Python培训ew 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 = (Strhttp://www.devze.coming)clipboard.getContents(TextTransfer.getInstance());

                String rtfText = (String)clipboard.getContents(RTFTransfer.getInstance());

                System.out.println("PLAIN: " + plainText + "\n" + "RTF: " + rtfText);

                ihAvURUZ;clipboard.dispose();

            }

        });

        shell.pack();

        shell.open();

        whil编程客栈e (!shell.isDisposed()) {

            if (!display.readAndDispatch()) {

                display.sleep();

            }

        }

        display.dispose();

    }

    public static void main(String[] args) {

        new CopyPaste();

    }

}

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新开发

开发排行榜