SWT使用系统剪切板工具

哈哈,今天比较开心,趁老大不在,写点东西:

下面是实现在一个control上面右键,调用系统剪切板的功能,希望对你我都有所帮助。
protected void createPopMenu(Control label)
{
Menu menu = new Menu(label.getShell(), SWT.POP_UP);
// menu.addListener(SWT.KeyDown, new Listener() {
//     public void handleEvent(Event e) {
//   System.out.println("keycode--> "+e.keyCode);
//     }});

final Clipboard cb = new Clipboard(label.getShell().getDisplay());
MenuItem copyItem = new MenuItem(menu, SWT.PUSH);
copyItem.setText("复制ID");
copyItem.addListener(SWT.Selection, new Listener() {

@Override
public void handleEvent(Event event) {
// TODO Auto-generated method stub
String rtfData = "{\\rtf1 \\b\\i " + id + "}";
TextTransfer textTransfer = TextTransfer.getInstance();
RTFTransfer rtfTransfer = RTFTransfer.getInstance();
Transfer[] types = new Transfer[] { textTransfer, rtfTransfer };
cb.setContents(new Object[] { id,rtfData}, types);

//也可以不要rtfData
//cb.setContents(new Object[] { id,id}, types);
}
});
label.setMenu(menu);
}

你可能感兴趣的:(UP)