我正在开发一个基于SWT StyledText
. 有一个功能我到现在都无法解决。当用户按下 Ctrl+u 时,我希望我的编辑器将光标放在选项卡宽度上作为上一行的开头(当用户按下 Enter 键时,类似于 Eclipse 或 Notepad++)。我已经尝试了几种方法,但对我没有任何效果。请看我的例子。欢迎提出任何建议。提前致谢。
StyledText text = new StyledText(shell, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
text.setTabs(5);
text.setText("");
text.setLeftMargin(5);
text.setBounds(0, 0, 512, 391);
text.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
int currentLine = text.getLineAtOffset(text.getCaretOffset());
int currCaretOffset = text.getCaretOffset();
if(e.stateMask == SWT.CTRL && e.keyCode == 'u'){
//text.setIndent(text.getOffsetAtLine(currentLine));//doesn't work
text.append("\n");
//text.append("\t");//doesn't work
text.setCaretOffset(text.getCharCount()+text.getTabs());//doesn't work
System.out.println("caret offset "+text.getCaretOffset());
}
}
});