SWT(JFace)体验之复制粘贴

页面导航:首页 > 软件编程 > Java编程 > SWT(JFace)体验之复制粘贴

SWT(JFace)体验之复制粘贴

来源:互联网 作者:脚本宝典 时间:2015-07-30 13:00 【

演示代码如下: 复制代码 代码如下: 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

演示代码如下:

复制代码代码如下:


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(); 
    } 
}


Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<