【发布时间】:2015-02-25 11:05:14
【问题描述】:
我已经创建了一个 SWT 文本编辑器,还实现了剪切、复制和粘贴功能,但现在我需要实现 CTRL + BACKSPACE,以删除前面的单词, 和 CTRL + DEL,删除前面的单词。
复制文本的代码
private class Copy implements SelectionListener{
public void widgetSelected(SelectionEvent event) {
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
copySelectedMessages();
}
private void copySelectedMessages(){
//StringBuffer stringCopied =new StringBuffer();
String textData = editor.getSelectionText();
//TextTransfer textTransfer = TextTransfer.getInstance();
System.out.println("you hv selected"+textData);
//Clipboard clipboard = new Clipboard(Display.getDefault());
TextTransfer transfer = TextTransfer.getInstance();
clipboard.setContents(new Object[] { textData }, new TextTransfer[] { transfer });
}
});
}
}
编辑器的代码
editor = new StyledText( this, SWT.MULTI | SWT.V_SCROLL );
editor.setLayoutData( new GridData(GridData.FILL_BOTH) );
editor.setFont( new Font(Display.getDefault(),"Cambria", 10, SWT.NORMAL) );
听者
proceeding.addSelectionListener(new proceed());
private class proceed implements SelectionListener{
public void widgetSelected(SelectionEvent event) {
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
// Code to check for CTRL + backspace and CTRL + delete
}
});
}
那么现在如何在 SWT 中实现 CTRL+BACKSPACE 和 CTRL+ DELETE功能。
【问题讨论】:
-
我需要在调用监听器时如何删除前导词和前导词的逻辑。我编写了调用监听器但没有得到逻辑的代码
-
嗯,你的听众在哪里?
-
在你可以检查的问题中更新
标签: java swt text-editor e4 listeners