1
我正在開發基於SWT StyledText
的(富)編輯器。直到現在我還有一個功能無法解決它。當用戶按下Ctrl + u(當用戶按下Enter鍵時,類似於Eclipse或Notepad ++)時,我希望編輯器將光標放在製表符寬度上作爲上一行的開頭。我嘗試了幾種方法,但沒有爲我工作。請看看我的例子。每個建議都是值得歡迎的。提前致謝。SWT StyledText:下一行的位置插入前一行的製表符寬度
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());
}
}
});
是的,這正是我想做。非常感謝你。我也想過填充「」,但沒有設法使它工作。 PS:我正在爲盲文顯示工作,而且白色空間有時不太好,因爲盲文顯示器一次只能顯示有限的字符(40個字符)。但我會試着去管理它。謝謝。 – APex
@APex您也可以使用選項卡。 – Baz
是的..我也試着這樣做,謝謝。 – APex